Ticket #5888 (closed bug: fixed)
Performance regression in 7.4.1 compared to 6.12.3
|Reported by:||nickie||Owned by:||igloo|
|Type of failure:||Runtime performance bug||Difficulty:||Unknown|
|Test Case:||Blocked By:|
Unless I'm doing something really stupid, there seems to be a significant slowdown for some programs between versions 6 and 7.
The bottom line is that the attached program runs in 6.79 sec. with 7.4.1 versus 4.72 sec. in 6.12.3. The script is meant to reproduce the problem in any x86 or x86_64 machine running linux.
The test machine was an Intel Xeon E7340 2.40GHz, 4x4 cores, GNU/Linux 2.6.32-5 (x86_64), but it can be reproduced in other machines too (i386) with similar results.
Checking GHC versions The Glorious Glasgow Haskell Compilation System, version 6.12.3 The Glorious Glasgow Haskell Compilation System, version 7.4.1 Compiling with GHC 6.12.3 /var/tmp/nickie/ghc-bench/usr/bin/ghc-6.12.3 -o ntak6 --make ntak.hs -O2 -optc-O3 [1 of 1] Compiling Main ( ntak.hs, ntak.o ) Linking ntak6 ... Compiling with GHC 7.4.1 /var/tmp/nickie/ghc-bench/usr/bin/ghc-7.4.1 -o ntak7 --make ntak.hs -O2 -optc-O3 -rtsopts=all [1 of 1] Compiling Main ( ntak.hs, ntak.o ) Linking ntak7 ... Running with GHC 6.12.3 ./ntak6 +RTS -sstderr 9, hs time = 4.748408 sec 4,738,681,488 bytes allocated in the heap 11,586,848 bytes copied during GC 33,456 bytes maximum residency (1 sample(s)) 321,592 bytes maximum slop 2 MB total memory in use (0 MB lost due to fragmentation) Generation 0: 9038 collections, 0 parallel, 0.06s, 0.07s elapsed Generation 1: 1 collections, 0 parallel, 0.00s, 0.00s elapsed INIT time 0.00s ( 0.00s elapsed) MUT time 4.66s ( 4.68s elapsed) GC time 0.06s ( 0.07s elapsed) EXIT time 0.00s ( 0.00s elapsed) Total time 4.73s ( 4.75s elapsed) %GC time 1.3% (1.5% elapsed) Alloc rate 1,015,078,645 bytes per MUT second Productivity 98.6% of total user, 98.2% of total elapsed 4.72 user 0.02 system 0:04.75 elapsed Running with GHC 7.4.1 9, hs time = 6.82757 sec 5,529,772,976 bytes allocated in the heap 13,357,408 bytes copied during GC 62,904 bytes maximum residency (2 sample(s)) 23,080 bytes maximum slop 2 MB total memory in use (0 MB lost due to fragmentation) Tot time (elapsed) Avg pause Max pause Gen 0 10583 colls, 0 par 0.07s 0.08s 0.0000s 0.0000s Gen 1 2 colls, 0 par 0.00s 0.00s 0.0002s 0.0002s INIT time 0.00s ( 0.00s elapsed) MUT time 6.72s ( 6.75s elapsed) GC time 0.07s ( 0.08s elapsed) EXIT time 0.00s ( 0.00s elapsed) Total time 6.79s ( 6.83s elapsed) %GC time 1.1% (1.2% elapsed) Alloc rate 822,831,578 bytes per MUT second Productivity 98.9% of total user, 98.4% of total elapsed 6.79 user 0.04 system 0:06.82 elapsed