https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109485

--- Comment #8 from Dani Borg <dani.borg at outlook dot com> ---
(In reply to Andrew Pinski from comment #3)
> Also I really doubt the improvement here is less than 1% improvement really
> for the common case where people don't put pathes in the include line.

Yes, it really depends on the project. It mainly becomes an issue for larger
projects that may have a lot of libraries with their own include paths. But the
file system is a big factor as well. I imagine the performance cost of open()
calls can be quite expensive for some file systems.

The project I have focused on had system load peaks reaching over 70% when
using gcc, while with clang the peaks reached only around 8%. This extreme
difference is what got me started looking into this to begin with.

Actually, I did an experiment to wrap the open() call where I implemented my
own caching (I wrapped gcc's call by creating a shared library and using
LD_PRELOAD). With my quick and dirty hack the system load peaks were reduced to
11% and the overall build time was reduced by 12%.

It's quite possible this is an extreme case, but I'm sure there are other large
projects out there that would see noticeable improvements as well.

Reply via email to