Search this blog

28 April, 2008

Parallel linking

At last! A smart programmer under the name of Ian Lance Taylor developed a parallel linker for GCC (x86), Gold. I hope this idea spreads fast (to visual studio...), C/C++ linking times are the main bottleneck to fast code iteration nowadays.

Linking is so slow that most companies use "bulk" builds (and I was really suprised by that, until a year ago I thought that incremental linkers, good precompiled headers and sane dependency management where good enough), i.e. merging all the sourcecode (per directory, or per package) into single, big source files (by using the preprocessor and includes).
Even if this slows down compilation (that is very fast with multicore or distrubuted system like incredibuild or distcc/ccache), requires regeneration of those bulk files if you add sources to the project, and has the nasty side effect of easily breaking includes in non bulk builds, it speeds up linking so much that is something almost compusory to have in a large project.

No comments: