nofib comparisons between 7.0.4, 7.4.2, 7.6.1, and 7.6.2
Austin Seipp
mad.one at gmail.com
Tue Feb 5 05:22:25 CET 2013
I'm +1 for this. Eyal Lotem and I were just discussing this on IRC a
few minutes ago, and he suffered a rather large (~25%) performance hit
when upgrading to 7.6.1, which is unfortunate.
Committers are typically very good about recording nofib results in
their commit and being performance-courteous, but I'm not sure there's
ever been a longer-scale view of GHC performance over multiple
releases like this - or even a few months. At least not recently. On
top of that, his application was a type checker, which may certainly
stress different performance points than what nofib might. Once we get
performance bots set up, I've got a small set of machines I'm willing
to throw at it.
Thanks for the results, Johan!
On Mon, Feb 4, 2013 at 4:33 PM, Johan Tibell <johan.tibell at gmail.com> wrote:
> Hi all,
>
> I haven't had much time to do performance tzar work yet, but I did run nofib
> on the last few GHC releases to see the current trend. The benchmarks where
> run on my 64-bit Core i7-3770 @ 3.40GHz Linux machine. Here are the results:
>
> 7.0.4 to 7.4.2:
>
> --------------------------------------------------------------------------------
> Program Size Allocs Runtime Elapsed TotalMem
> --------------------------------------------------------------------------------
> Min -1.6% -57.3% -39.1% -36.4% -25.0%
> Max +21.5% +121.5% +24.5% +25.4% +300.0%
> Geometric Mean +8.5% -0.7% -7.1% -5.2% +2.0%
>
> The big loser here in terms of runtime is "kahan", which I added to test
> tight loops involving unboxed arrays and floating point arithmetic. I
> believe there was a regression in fromIntegral RULES during this release,
> which meant that some conversions between fixed-width types went via
> Integer, causing unnecessary allocation.
>
> 7.4.2 to 7.6.1:
>
> --------------------------------------------------------------------------------
> Program Size Allocs Runtime Elapsed TotalMem
> --------------------------------------------------------------------------------
> Min -5.1% -23.8% -11.8% -12.9% -50.0%
> Max +5.3% +225.5% +7.2% +8.8% +200.0%
> Geometric Mean -0.4% +2.1% +0.3% +0.2% +0.7%
>
> The biggest loser here in terms of runtime is "integrate". I haven't looked
> into why yet.
>
> 7.6.1 to 7.6.2:
>
> --------------------------------------------------------------------------------
> Program Size Allocs Runtime Elapsed TotalMem
> --------------------------------------------------------------------------------
> Min -2.9% +0.0% -4.8% -4.4% -1.9%
> Max +0.0% +1.0% +4.5% +6.4% +20.8%
> Geometric Mean -1.7% +0.0% +0.1% +0.3% +0.2%
>
> I have two takeaways:
>
> * It's worthwhile running nofib before releases as it does find some
> programs that regressed.
> * There are some other regressions out there (i.e. in code on Hackage) that
> aren't reflected here, suggesting that we need to add more programs to
> nofib.
>
> Cheers,
> Johan
>
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
--
Regards,
Austin
More information about the ghc-devs
mailing list