Calvin Morrison <mutanttur...@gmail.com> writes: > On 17 July 2013 16:32, Christian Neukirchen <chneukirc...@gmail.com> wrote: >> Calvin Morrison <mutanttur...@gmail.com> writes: >> >>> Hi guys, >>> >>> I came up with a utility[0] that i think could be useful, and I sent >>> it to the moreutils page, but maybe it might fit better here. All it >>> does is give a count of files in a directory. >>> >>> I was sick of ls | wc -l being so damned slow on large directories, so >>> I thought a more direct solution would be better. >>> >>> calvin@ecoli:~/big_folder> time ls file2v1dir/ | wc -l >>> 687560 >>> >>> real 0m7.798s >>> user 0m7.317s >>> sys 0m0.700s >>> >>> calvin@ecoli:~/big_folder> time ~/bin/dc file2v1dir/ >>> 687560 >>> >>> real 0m0.138s >>> user 0m0.057s >>> sys 0m0.081s >>> >>> What do you think? >>> Calvin >> >> What's the bottle neck here? > > Looking up the filenames and reading them, printing them to standard > out and then wc parsing for all the \n characters. > >> (Or is your dc only faster because the directory index is in cache now...) > > No that's not why: > > calvin@ecoli:~/big_folder> ls 2v1 | wc -l > 687560 > > real 0m7.678s > user 0m7.313s > sys 0m0.579s > > calvin@ecoli:~/big_folder> time dc 2v1 > 687560 > > real 0m0.138s > user 0m0.055s > sys 0m0.082s > > calvin@ecoli:~/big_folder> time ls 2v1 | wc -l > 687560 > > real 0m7.672s > user 0m7.310s > sys 0m0.580s
How fast is find 2v1 -printf x | wc -c ? -- Christian Neukirchen <chneukirc...@gmail.com> http://chneukirchen.org