I was wondering why a release clobber build of chrome takes 20 minutes on mac, but just 10 minutes on linux. Part is that mac builds release builds with debug information by default (debug information is stored differently on mac, so this makes sense). Disabling debug information brings the mac time to 14 minutes, still almost 50% slower.
To try and find out where the time goes, I made this build time visualization. These graphs show filesize per compilation over compilation time (log scale). They were created by this script, which works by parsing ninja’s build log.
Files that are built early are blue, things that are built late are red, and the hue interpolates between them. For example, WebKit is built in the middle of a build and is hence green.
Note the discrete filesize bands on Mac, which are caused by the use of (precompiled) prefix headers in WebKit.
Some files are very small but still manage to take a long time to build, for
Mouse over the graphs for detailed information on every file.