--- Chad Austin <caustin@gmail.com> wrote:
% time libtbx.scons . [snip] 57.200u 6.450s 1:03.74 99.8% 0+0k 0+0io 1394pf+0w % time libtbx.scons --implicit-cache . [snip] 57.600u 6.480s 1:04.21 99.7% 0+0k 0+0io 1394pf+0w
Did you try running with --implicit-cache again? The first time you use it, it caches the dependency information of headers. The second time, it uses that information to speed up the build. In short, you could describe --implicit-cache as adding a test: "if signature of header has not changed, then don't scan it: use the previous headers found." That gets rid of the scanner pass (although MD5 is still run).
It doesn't help here running the no-op build four times in a row: 57.900u 6.360s 1:04.30 99.9% 0+0k 0+0io 1394pf+0w 58.290u 6.760s 1:05.34 99.5% 0+0k 0+0io 1394pf+0w 61.580u 6.570s 1:08.22 99.8% 0+0k 0+0io 1394pf+0w 57.450u 6.760s 1:04.27 99.9% 0+0k 0+0io 1394pf+0w
Nice. Try running with --implicit-cache a few times in a row... then we can compare it with your patch. Of course, with both, you might get an even bigger speedup. :)
Similar observation using the CPPFLAGS trick: 15.340u 1.310s 0:16.82 98.9% 0+0k 0+0io 1402pf+0w 15.220u 1.480s 0:16.81 99.3% 0+0k 0+0io 1402pf+0w 15.280u 1.440s 0:16.78 99.6% 0+0k 0+0io 1402pf+0w 15.160u 1.410s 0:16.65 99.5% 0+0k 0+0io 1402pf+0w Do I have to run something else before using --implicit-cache? IIRC I also tried --implicit-deps-unchanged and other options at some point in the past. Nothing made a significant difference.
I'm pretty sure you would only have to patch the scanner. Fortunately, the scanner code is pretty straightforward.
I know...
Take a look at Scanner/__init__.py. Should be easy to implement using an environmental variable. :)
OK, I'll put this on my try-again list. :-) Ralf __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! http://promotions.yahoo.com/new_mail