Where does time go when you build?

Following on from this blogpost about how much time is spent in Makefiles, pcwalton sent me a link to his blog. He has a great breakdown of mac osx builds, showing where all those minutes go for each mac osx build.

We spend ~55% of the time compiling (“g++-4.2”, “gcc-4.2”, “gcc”), but whats in the other 45% – and why?? Some investigation work ahead of us. Thanks pcwalton for doing all this work – data like this really helps figure out where to focus attention first.

4 thoughts on “Where does time go when you build?

  1. Hm, ar + ranlib = linking; python = jarmaker, preprocessor, etc… I guess sh and things lower than perl have to do with the make system which is horribly shell-based. Good to know that something like 15% could be eliminated.

  2. Well, it would probably also help if some binaries would not show up with two different names in the chart, e.g. gcc-4.2 and gcc or python2.6 and python…

    But I guess we really should look into those shell calls (and I wonder how many of them we could eliminate by switching to pymake and optimizing based on that.

  3. One of the most serious issues is that our build isn’t sufficiently parallel. So if you have four cores, most of them will be idle for most of the build.

    Bug 620285 tries to address this, but it’s a hack, and only gets us part of the way there.

Leave a Reply