This is the mail archive of the cygwin-developers mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Performance optimization in av::fixup - use buffered IO, not mapped file


On 12/12/2012 2:35 PM, Corinna Vinschen wrote:
Idle musing:  It would be interesting to know if building and testing a
gcc toolchain would run much faster if we disable the automatic
spare-file creation in lseek/write.
gcc-4.7.1

After de-sparsing all executables generated by `make stage1-all-gcc', the subsequent invocation of `make -j2 stage1-all' generates 475 .o files in two minutes on my laptop.

Assuming sparse-file penalties of 2s per invocation, that's 16 cpu-minutes saved, or 8.9x speedup for that part of the build.

Building stage2-all-gcc (which includes several ./configure script runs using the now de-sparsed stage1 gcc) generates near-zero disk activity and appears to run as fast as the stage1 configure did. There are eight configure scripts to run, and assuming each has 50 tests that invoke gcc means another 13 cpu-minutes saved.

Do that two more times, and we've saved 97 cpu-minutes to finish bootstrap.

I've never run the test suite, but it has what, 50k c and c++ files in it? That would mean 28 cpu-hours saved.

Ryan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]