
Make sure you're profiling with -prof -auto-all And any packages you're using may need -auto-all as well. limestrael:
I'm definitely not good at profiling... But I have something:
4,971,190,736 bytes allocated in the heap 4,392,735,248 bytes copied during GC 13,998,328 bytes maximum residency (573 sample(s)) 3,281,000 bytes maximum slop 38 MB total memory in use (0 MB lost due to fragmentation)
Generation 0: 6987 collections, 0 parallel, 3.18s, 3.01s elapsed Generation 1: 573 collections, 0 parallel, 1.74s, 1.90s elapsed
INIT time 0.00s ( 0.00s elapsed) MUT time 6.60s ( 9.54s elapsed) GC time 4.92s ( 4.91s elapsed) RP time 0.00s ( 0.00s elapsed) PROF time 0.02s ( 0.03s elapsed) EXIT time 0.01s ( 0.01s elapsed) Total time 11.55s ( 14.49s elapsed)
%GC time 42.6% (33.9% elapsed)
Alloc rate 752,071,215 bytes per MUT second
Productivity 57.2% of total user, 45.6% of total elapsed
COST CENTRE MODULE %time %alloc
MAIN MAIN 92.2 89.9 newPaddle Pong.Types 7.8 9.9
Apparently, the integral (which is in newPaddle) does not consumes lots of memory and time. It's the main.
I don't see where I should add strict evaluation.
2010/5/15 Limestraël
Okay, guess I'll have to bring out the chapter 25 of my Real World Haskell...
2010/5/15 Bulat Ziganshin
Hello Limestraėl,
Saturday, May 15, 2010, 7:02:38 PM, you wrote:
> But when I set my beat to tick every 60 times per second, the > position is well updated, but I clearly see that the display > dramatically slows down after a few seconds of execution. Too heavy rate for integrate?
it may be due to lot of uncollected garbage that is result of lazy evaluation. profile program to check its GC times
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe