GHC build time graphs

Joachim, Anthony Cowley was recently complaining on Twitter that building GHC takes 39.5% longer now than it did for 7.10.1: https://twitter.com/a_cowley/status/692481516744634368 Do we have graphs for these metrics, e.g. can we see the breakdown of which commits increased the build time? Thanks, Edward

Hi, Am Donnerstag, den 28.01.2016, 10:30 -0800 schrieb Edward Z. Yang:
Anthony Cowley was recently complaining on Twitter that building GHC takes 39.5% longer now than it did for 7.10.1: https://twitter.com/a_cowley/status/692481516744634368
Do we have graphs for these metrics, e.g. can we see the breakdown of which commits increased the build time?
well, we have https://perf.haskell.org/ghc/#graph/buildtime/make In theory, there would be a button to expand the graph on the left. In practice, that is not yet implemented... See https://github.com/nomeata/gipeda/issues/14 Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org

Is the same compiler used to build HEAD and 7.10,1? - Oleg
On 28 Jan 2016, at 20:30, Edward Z. Yang
wrote: Joachim,
Anthony Cowley was recently complaining on Twitter that building GHC takes 39.5% longer now than it did for 7.10.1: https://twitter.com/a_cowley/status/692481516744634368
Do we have graphs for these metrics, e.g. can we see the breakdown of which commits increased the build time?
Thanks, Edward _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Hi Oleg, Am Freitag, den 29.01.2016, 00:22 +0200 schrieb Oleg Grenrus:
Is the same compiler used to build HEAD and 7.10,1?
Good call. In fact, no: 7.10.1 is built with 7.6.3, while HEAD is built with 7.10.3. Anthony’s link, i.e. https://perf.haskell.org/ghc/#compare/ca00def1d7093d6b5b2a937ddfc8a01c152038... has links to the build logs of either build; there I could find that information. That might be (part) of the problem. But if it is, it is even worse, as it would mean not only building the compiler got slower, but the compiler itself... Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org

Joachim Breitner
Hi Oleg,
Am Freitag, den 29.01.2016, 00:22 +0200 schrieb Oleg Grenrus:
Is the same compiler used to build HEAD and 7.10,1?
Good call. In fact, no: 7.10.1 is built with 7.6.3, while HEAD is built with 7.10.3.
Anthony’s link, i.e. https://perf.haskell.org/ghc/#compare/ca00def1d7093d6b5b2a937ddfc8a01c152038... has links to the build logs of either build; there I could find that information.
That might be (part) of the problem. But if it is, it is even worse, as it would mean not only building the compiler got slower, but the compiler itself...
I can verify that the build itself is indeed slower. Validating the current state of ghc-7.10 takes 19 minutes, whereas ghc-8.0 takes 25.5 minutes. This isn't entirely unexpected but the change is quite a bit larger than I had thought. It would be nice to know which commits are responsible. Cheers, - Ben

On 01/28/16 11:34 PM, Ben Gamari wrote:
Joachim Breitner
writes: Hi Oleg,
Am Freitag, den 29.01.2016, 00:22 +0200 schrieb Oleg Grenrus:
Is the same compiler used to build HEAD and 7.10,1?
Good call. In fact, no: 7.10.1 is built with 7.6.3, while HEAD is built with 7.10.3.
Anthony’s link, i.e. https://perf.haskell.org/ghc/#compare/ca00def1d7093d6b5b2a937ddfc8a01c152038... has links to the build logs of either build; there I could find that information.
That might be (part) of the problem. But if it is, it is even worse, as it would mean not only building the compiler got slower, but the compiler itself...
I can verify that the build itself is indeed slower. Validating the current state of ghc-7.10 takes 19 minutes, whereas ghc-8.0 takes 25.5 minutes. This isn't entirely unexpected but the change is quite a bit larger than I had thought. It would be nice to know which commits are responsible.
btw, just recent experience on ARM64 (X-gene board): bootstrapping 7.10.1 with 7.6.x took: ~120 minutes bootstrapping 8.0.1 RC2 with 7.10.1 took: ~446 minutes both run as: ./configure; time make -j8 although board is shared I've tried to look at it from time to time and have not observed anyone else there so I can assume this is indeed GHC slowness on unregisterised -fvia-C ports... Karel

On Tue, Feb 9, 2016 at 11:20 AM, Karel Gardas
On 01/28/16 11:34 PM, Ben Gamari wrote:
Joachim Breitner
writes: Hi Oleg,
Am Freitag, den 29.01.2016, 00:22 +0200 schrieb Oleg Grenrus:
Is the same compiler used to build HEAD and 7.10,1?
Good call. In fact, no: 7.10.1 is built with 7.6.3, while HEAD is built with 7.10.3.
Anthony’s link, i.e.
https://perf.haskell.org/ghc/#compare/ca00def1d7093d6b5b2a937ddfc8a01c152038... has links to the build logs of either build; there I could find that information.
That might be (part) of the problem. But if it is, it is even worse, as it would mean not only building the compiler got slower, but the compiler itself...
I can verify that the build itself is indeed slower. Validating the
current state of ghc-7.10 takes 19 minutes, whereas ghc-8.0 takes 25.5 minutes. This isn't entirely unexpected but the change is quite a bit larger than I had thought. It would be nice to know which commits are responsible.
btw, just recent experience on ARM64 (X-gene board):
bootstrapping 7.10.1 with 7.6.x took: ~120 minutes bootstrapping 8.0.1 RC2 with 7.10.1 took: ~446 minutes
both run as: ./configure; time make -j8
It would be interesting to have the time for bootstrapping 7.10.1 with 7.10.1 too, for comparison. Regards, Reid Barton

On 02/12/16 09:02 PM, Reid Barton wrote:
btw, just recent experience on ARM64 (X-gene board):
bootstrapping 7.10.1 with 7.6.x took: ~120 minutes bootstrapping 8.0.1 RC2 with 7.10.1 took: ~446 minutes
both run as: ./configure; time make -j8
It would be interesting to have the time for bootstrapping 7.10.1 with 7.10.1 too, for comparison.
Good idea, build is running, but is sluggish just from the first sight. Running already for 1h20m and still building stage1. This is more in line with 8.0.1 I'm afraid. Anyway, I'll update with proper time once it is at the end. Looks like I'll also need to do 7.8.x build to see where we are on this... Karel

On 02/12/16 09:02 PM, Reid Barton wrote:
btw, just recent experience on ARM64 (X-gene board):
bootstrapping 7.10.1 with 7.6.x took: ~120 minutes bootstrapping 8.0.1 RC2 with 7.10.1 took: ~446 minutes
both run as: ./configure; time make -j8
It would be interesting to have the time for bootstrapping 7.10.1 with 7.10.1 too, for comparison.
boostrapping 7.10.1 with 7.10.1 took: ~212 minutes -- but this is not comparable directly with numbers above since for whatever reason haddock and doc is not build although I've used previous ./configure; time make -j8. Anyway, parallel make itself is not good to use here since the build process may also contain some noise of paralellel make fixes and such. I think more reliable benchmark may be simple build (single-threaded) of ghc-cabal here. I'll see what I can do about that. Cheers, Karel

On 02/13/16 07:57 PM, Karel Gardas wrote:
On 02/12/16 09:02 PM, Reid Barton wrote:
btw, just recent experience on ARM64 (X-gene board):
bootstrapping 7.10.1 with 7.6.x took: ~120 minutes bootstrapping 8.0.1 RC2 with 7.10.1 took: ~446 minutes
both run as: ./configure; time make -j8
It would be interesting to have the time for bootstrapping 7.10.1 with 7.10.1 too, for comparison.
boostrapping 7.10.1 with 7.10.1 took: ~212 minutes -- but this is not comparable directly with numbers above since for whatever reason haddock and doc is not build although I've used previous ./configure; time make -j8.
Anyway, parallel make itself is not good to use here since the build process may also contain some noise of paralellel make fixes and such.
I think more reliable benchmark may be simple build (single-threaded) of ghc-cabal here. I'll see what I can do about that.
OK, so not everything is that bad. Benchmarking compilation of GHC 7.10.1 ghc-cabal tool reveals: GHC 7.6.3: ~12 minutes GHC 7.10.1: ~24 minutes GHC 8.0.1 RC2: ~14 minutes Please note that GHC 7.6.3 compiles 89 files while GHC 7.10.1 and 8.0.1 RC2 compile 90 files. Test done on the same x-gene board like the tests above for the reference... Karel
participants (6)
-
Ben Gamari
-
Edward Z. Yang
-
Joachim Breitner
-
Karel Gardas
-
Oleg Grenrus
-
Reid Barton