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.