
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