
On 14/04/2011, at 6:24 PM, Simon Marlow wrote:
I made some changes to the storage manager in the runtime today, and fixed the slop problem with your program. Here it is after the changes:
14,928,031,040 bytes allocated in the heap 313,542,200 bytes copied during GC 18,044,096 bytes maximum residency (7 sample(s)) 294,256 bytes maximum slop 37 MB total memory in use (0 MB lost due to fragmentation)
INIT time 0.00s ( 0.00s elapsed) MUT time 6.38s ( 6.39s elapsed) GC time 1.26s ( 1.26s elapsed) EXIT time 0.00s ( 0.00s elapsed) Total time 7.64s ( 7.64s elapsed)
I think this is with a different workload than the one you used above. Before the change I was getting
15,652,646,680 bytes allocated in the heap 312,402,760 bytes copied during GC 17,913,816 bytes maximum residency (9 sample(s)) 111,424,792 bytes maximum slop 142 MB total memory in use (0 MB lost due to fragmentation)
INIT time 0.00s ( 0.00s elapsed) MUT time 8.01s ( 8.02s elapsed) GC time 16.86s ( 16.89s elapsed) EXIT time 0.00s ( 0.00s elapsed) Total time 24.88s ( 24.91s elapsed)
(GHC 7.0.3 on x86-64/Linux) So, a pretty dramatic improvement. I'm validating the patch right now, it should be in 7.2.1.
This looks really promising. Let me know when the patch is available, and I'll try it out on my real code. Thanks, Tim