3 ms·
> So why does it take minutes to compile? I’m not claiming anything about it being I/O or compute bound, but you are missing some sources of I/O: - the compil
by Someone 1y ago
> So why does it take minutes to compile?
I’m not claiming anything about it being I/O or compute bound, but you are missing some sources of I/O:
- the compiler reads many source files (e.g. headers) multiple times
- the compiler writes and then reads lots of intermediate data
- the OS may have to swap out memory
Also, there may be resource contention that makes the system do neither I/O nor compute for part of the build.
- lingolango 1y agoTried building sqlite amalgamation just now. Input: single .c file 8.5MB. Output: 1.8MB object file. Debug build took 1.5s. Release build (O2) took about 6s. That is about 3 orders of magntiude slower than what this machine is capable of in terms of IO from disk.
- sgerenser 1y agoThe fact that something doesn’t scale past X cores doesn’t mean that it is I/O bound! For most C++ toolchains, any given translation unit can only be compiled on a single core. So if you have a big project, but there’s a few files that alone take 1+ minute to compile, the entire compilation can’t possibly take any less than 1 minute even if you had infinite cores. That’s not even getting into linking, which is also usually at least partially if not totally a serial process. See also https://en.m.wikipedia.org/wiki/Amdahl%27s_law https://en.m.wikipedia.org/wiki/Amdahl%27s_law