Re: Ccache prefetch
Andrew Stubbs <[email protected]>
| Newsgroups | gmane.comp.compilers.ccache |
|---|---|
| Message-ID | <[email protected]> |
On 11/05/14 06:11, Ian Albany wrote: > IO. Has anyone ever played with preloading the cache into the VFS > cache ie. RAM as opposed to disk. I have loads of ram and when > building say the linux kernel, I can start the build an in the > background read the ccache from one disk and the headers and c files > using a simple script much in the same way as the preload mechanism > works for booting some linux systems. But I think that there is also > some history based on previous usage, so the question is, has anyone > implemented a second level cache preload? The problem with this idea is that ccache is only ever executed when you run a compile job, and at that time it is in the critical path of your build so it must do that absolute minimum to get the job done. However, you could prime the caches yourself, perhaps. A simple grep, or md5sum, or something, over the cache directory will load all the files into memory. If you have a large cache directory and only want to load some of it into RAM then perhaps a "find .ccache -anewer somefile" to find any cache files newer than a file you created previously (unfortunately find does not appear to provide a way to do that numerically). A source file you modified just before a recent full build would probably be an appropriate reference point. Hope that helps Andrew P.S. for maximum build performance, I would recommend mounting your volumes with "noatime", which defeats the above suggestion. It's a problem.