[ccache] ccacje direct mode without fall back to running the preprocessor

Anders Björklund anders at itension.se
Thu Dec 10 17:16:33 UTC 2015

Andrew Stubbs wrote:
> You really are getting into shaving fractions now though. At this point
> you should seriously consider linking ccache statically; run it with
> callgrind and you can see that a significant proportion of time is spent
> before "main" is even called, loading libraries and such.
> Most of the rest of the time is spent doing MD4. I have some ideas how
> to optimize that (by sharing them across runs), but nothing ready to post.

I would be interested in your thoughts on how to speed that part up.

Posted some patches on how to avoid certain headers in the manifest,
but it seemed like there was no obvious way to improve the MD4 hash.
(did try an "optimized" version from OpenSSL instead, but it was only
marginally faster. And MD4 is still better than MD5 or any SHA hash)

As long as you still get those direct hits, you will avoid it though*.

* running the preprocessor and hashing the output (.i/.ii), that is.
You will still have to hash the arguments and such, hopefully smaller.
One thing that *is* a concern is the number of simultaneous `cc -E`
running... Perhaps that needs a special CCACHE_PREFIX/lock some day ?


More information about the ccache mailing list