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 Comments (+add yours?)

  1. Arpad Borsos
    12 Mar 2011 @ 02:07:49

    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. johnjbarton
    12 Mar 2011 @ 09:38:53

    Is this “time” CPU time or wall clock time? I guess it’s CPU time, which is not very interesting.


  3. Robert Kaiser
    12 Mar 2011 @ 15:04:29

    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.


  4. Justin L.
    25 May 2011 @ 05:16:58

    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