On Tue, Apr 08, 2025 at 10:36:20PM -0600, Brian Inglis via Cygwin wrote:
> On 08/04/2025 19:05, Mark Liam Brown via Cygwin wrote:
> > Are there tuning variables to improve ls, ls -l, find ., find . -ls
> > performance for very large dirs?
> > 
> > If we have a SMB dir with 60000+ entries a simple ls -l can take MANY
> > minutes (22+mins), while cmd.exe dir just floods the terminal with
> > results immediately.
> 
> I just remembered noticing my /var/log/ entries jumped looking at my last
> Cygwin upgrade log, so before I clean it up into subdirs, let's try some
> stuff!
> 
> If you just want a directory name dump, use \ls -U|--sort=none or \ls -f
> which is like -aU; command prefix \ overrides the usual aliases like -CF
> --color=auto:
> 
> $ time \ls -1U /var/log/ | \wc -lwmcL
>   54049   54049 1885787 1885787      38
> 
> real  0m0.336s
> user  0m0.046s
> sys   0m0.295s
> $ time \ls -1f /var/log/ | \wc -lwmcL
>   54051   54051 1885792 1885792      38
> 
> real  0m0.347s
> user  0m0.140s
> sys   0m0.232s
> 
> even with -l, it's only a few seconds:
> 
> $ time \ls -lU /var/log/ | \wc -lwmcL
>   54050  486455 4966716 4966716     102
> 
> real  0m15.891s
> user  0m1.421s
> sys   0m14.560s
> $ time \ls -lf /var/log/ | \wc -lwmcL
>   54052  486473 4966835 4966835     102
> 
> real  0m15.858s
> user  0m1.405s
> sys   0m14.374s
> 
> and skipping user and group lookup does not save anything:
> 
> $ time \ls -gloU /var/log/ | \wc -lwmcL
>   54050  378357 3777638 3777638      80
> 
> real  0m15.699s
> user  0m1.562s
> sys   0m14.155s
> $ time \ls -gGlf /var/log/ | \wc -lwmcL
>   54052  378371 3777713 3777713      80
> 
> real  0m15.908s
> user  0m1.389s
> sys   0m14.498s
> 
> -- 
> Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

That reminds me:

OP should run cygserver to cache the AD LDAP queries.
That will likely have a measurable impact on performance.

https://cygwin.com/cygwin-ug-net/using-cygserver.html

Cheers, Glenn

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to