[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug #52076] wildcard/glob should be sorted

From: Sven C. Dack
Subject: Re: [bug #52076] wildcard/glob should be sorted
Date: Thu, 21 Sep 2017 10:44:43 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

One thought I have here is that the sorting algorithm itself may not have a significant impact, but hard disk latencies may well make a difference.

What one sees as an (alphabetically) unordered list may well be an ordering significant to a file system's performance, meaning, it's not a completely random ordering and sorting it alphabetically can negatively impact the file system's efficiency. The ordering in which a file system returns file lists will likely be how these are physically ordered on the drive, thus processing them in the same exact order will help in reducing access latencies.

However, running builds in parallel and using SSDs over HDDs has reduced the latency problem significantly in recent years. This will make (alphabetically) unordered lists more useful to older systems, but less useful to newer ones.

Seeing how this isn't useful to everyone, how about making it into a --disable/--enable option for configure?

On 21/09/17 04:26, Bernhard M. wrote:
Follow-up Comment #2, bug #52076 (project make):

I tried to measure the performance difference using the attached 'makebench'
files, running in a tmpfs to not have physical disk IO influence results
but found that the difference is so close to zero
that it was lost in noise.

Here is what i got from running it twice each with unsorted and sorted glob:

==unsorted make:

real    0m8,108s
user    0m7,652s
sys     0m0,402s
make: Nothing to be done for 'run'.

real    0m7,706s
user    0m7,496s
sys     0m0,157s

real    0m7,998s
user    0m7,605s
sys     0m0,391s
make: Nothing to be done for 'run'.

real    0m7,634s
user    0m7,489s
sys     0m0,136s

== sorted make:

real    0m8,030s
user    0m7,662s
sys     0m0,372s
make: Nothing to be done for 'run'.

real    0m7,583s
user    0m7,417s
sys     0m0,168s

real    0m8,026s
user    0m7,609s
sys     0m0,423s
make: Nothing to be done for 'run'.

real    0m7,646s
user    0m7,509s
sys     0m0,137s

Do you have a benchmark that better shows the difference?

(file #41853)

Additional Item Attachment:

File name: makebench.tar.gz               Size:0 KB


Reply to this item at:


   Message sent via/by Savannah

Bug-make mailing list


reply via email to

[Prev in Thread] Current Thread [Next in Thread]