nofib comparisons between 7.0.4, 7.4.2, 7.6.1, and 7.6.2
Johan Tibell
johan.tibell at gmail.com
Wed Feb 6 00:48:13 CET 2013
I've now added the shootout programs that could be added without modifying
the programs itself. I described why some programs weren't added in
nofib/shootout/README.
For the curious, here's the change in these benchmarks from 7.0.4 to 7.6.2:
--------------------------------------------------------------------------------
Program Size Allocs Runtime Elapsed TotalMem
--------------------------------------------------------------------------------
binary-trees +2.6% -0.6% -2.8% -2.8% -22.3%
fannkuch-redux +1.4%+11514445. +0.2% +0.2% +0.0%
n-body +3.8% +0.0% +4.4% +4.4% +0.0%
pidigits +2.2% -6.9% -1.7% -1.2% -20.0%
spectral-norm +2.1% -61.3% -54.8% -54.8% +0.0%
--------------------------------------------------------------------------------
Min +1.4% -61.3% -54.8% -54.8% -22.3%
Max +3.8%+11514445. +4.4% +4.4% +0.0%
Geometric Mean +2.4% +737.6% -14.7% -14.6% -9.1%
Some interesting differences here (and some really good ones)!
I looked into fannkuch-redux (nofib/shootout/fannkuch-redux) and confirmed
the allocation difference:
7.0.4:
93,680 bytes allocated in the heap
2,880 bytes copied during GC
43,784 bytes maximum residency (1 sample(s))
21,752 bytes maximum slop
1 MB total memory in use (0 MB lost due to fragmentation)
Generation 0: 0 collections, 0 parallel, 0.00s, 0.00s elapsed
Generation 1: 1 collections, 0 parallel, 0.00s, 0.00s elapsed
INIT time 0.00s ( 0.00s elapsed)
MUT time 38.53s ( 38.56s elapsed)
GC time 0.00s ( 0.00s elapsed)
EXIT time 0.00s ( 0.00s elapsed)
Total time 38.53s ( 38.56s elapsed)
%GC time 0.0% (0.0% elapsed)
Alloc rate 2,431 bytes per MUT second
Productivity 100.0% of total user, 99.9% of total elapsed
7.6.2:
10,538,113,312 bytes allocated in the heap
819,304 bytes copied during GC
44,416 bytes maximum residency (2 sample(s))
25,216 bytes maximum slop
1 MB total memory in use (0 MB lost due to fragmentation)
Tot time (elapsed) Avg pause Max pause
Gen 0 20177 colls, 0 par 0.06s 0.05s 0.0000s 0.0000s
Gen 1 2 colls, 0 par 0.00s 0.00s 0.0001s 0.0002s
INIT time 0.00s ( 0.00s elapsed)
MUT time 38.76s ( 38.82s elapsed)
GC time 0.06s ( 0.05s elapsed)
EXIT time 0.00s ( 0.00s elapsed)
Total time 38.83s ( 38.88s elapsed)
%GC time 0.2% (0.1% elapsed)
Alloc rate 271,864,153 bytes per MUT second
Productivity 99.8% of total user, 99.7% of total elapsed
We're going from a essentially non-allocation program to an allocating one.
Aside: I didn't use -fllvm, which is what the shootout normally uses.
-- Johan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130205/2f45b725/attachment.htm>
More information about the ghc-devs
mailing list