[GHC] #8900: Strictness analysis regression
GHC
ghc-devs at haskell.org
Sun Mar 16 16:57:31 UTC 2014
#8900: Strictness analysis regression
--------------------------------------------+------------------------------
Reporter: tibbe | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.8.1-rc2
Resolution: | Keywords:
Operating System: MacOS X | Architecture: x86_64
Type of failure: Runtime performance bug | (amd64)
Test Case: | Difficulty: Unknown
Blocking: | Blocked By:
| Related Tickets:
--------------------------------------------+------------------------------
Comment (by tibbe):
Without the extra case expression, there's still a small difference. Using
the best of 5 runs, here are the numbers:
HEAD (46d05ba03d1491cade4a3fe33f0b8c404ad3c760):
{{{
$ ./HashMapInsert +RTS -s -A2G
1,191,223,096 bytes allocated in the heap
3,312 bytes copied during GC
35,992 bytes maximum residency (1 sample(s))
13,160 bytes maximum slop
2081 MB total memory in use (0 MB lost due to fragmentation)
Tot time (elapsed) Avg pause Max
pause
Gen 0 0 colls, 0 par 0.00s 0.00s 0.0000s
0.0000s
Gen 1 1 colls, 0 par 0.01s 0.01s 0.0060s
0.0060s
INIT time 0.01s ( 0.02s elapsed)
MUT time 0.60s ( 0.89s elapsed)
GC time 0.01s ( 0.01s elapsed)
EXIT time 0.01s ( 0.01s elapsed)
Total time 0.62s ( 0.92s elapsed)
%GC time 0.9% (0.6% elapsed)
Alloc rate 1,991,359,179 bytes per MUT second
Productivity 97.8% of total user, 66.0% of total elapsed
}}}
7.6.3:
{{{
$ ./HashMapInsert +RTS -s -A2G
1,191,223,528 bytes allocated in the heap
3,400 bytes copied during GC
36,080 bytes maximum residency (1 sample(s))
13,072 bytes maximum slop
2081 MB total memory in use (0 MB lost due to fragmentation)
Tot time (elapsed) Avg pause Max
pause
Gen 0 0 colls, 0 par 0.00s 0.00s 0.0000s
0.0000s
Gen 1 1 colls, 0 par 0.01s 0.01s 0.0057s
0.0057s
INIT time 0.01s ( 0.02s elapsed)
MUT time 0.59s ( 0.86s elapsed)
GC time 0.01s ( 0.01s elapsed)
EXIT time 0.01s ( 0.01s elapsed)
Total time 0.61s ( 0.90s elapsed)
%GC time 0.9% (0.6% elapsed)
Alloc rate 2,033,686,150 bytes per MUT second
Productivity 97.8% of total user, 66.4% of total elapsed
}}}
I've attached the Cmm for both HEAD and 7.6.3. They're not trivial to
compare as in HEAD everything is in one function, `$wpoly_go_entry`, while
in 7.6.3 it's split over two, `$wpoly_go_info` and `s2ZS_ret`.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8900#comment:14>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list