Looks neat. Can you add more statistics for gc time, like maximum/minimum/average/median?
On 10/01/2011 04:50 PM, Sam Tobin-Hochstadt wrote: > Since Matthew added nice programmatic tools for understanding the > behavior of the GC, I've written a little tool to summarize the GC > behavior of your program. You can find it on GitHub here: > https://github.com/samth/gcstats . To install it, do this: > > % git clone git://github.com/samth/gcstats.git > % raco link gcstats > > Then you can do this: > > % racket -l gcstats -u my-program.rkt > > and you get output like this: > > 39,703,916 bytes allocated in the heap > 28,890,688 bytes collected by GC > 17,083,432 bytes max heap size > 16,604,120 bytes max slop > 28,229,632 bytes peak total memory use > > Generation 0: 5 collections, 32ms, 31.71ms elapsed > Generation 1: 0 collections, 0ms, 0ms elapsed > > INIT time 256 ms > MUT time 132 ms ( 129.98 ms elapsed) > GC time 32 ms ( 31.71 ms elapsed) > TOTAL time 420 ms ( 417.69 ms elapsed) > > %GC time 19.51% ( 19.61% elapsed) > > Alloc rate 300,787,242 bytes per MUT second > > There are a few significant limitations at present: > 1. There are a few GCs before the tool starts -- it can't report > anything about them. > 2. If you have multiple places, it will do totally the wrong thing. > Fixing this will require a little more information from Racket. > 3. The current architecture keeps too much info around during the run > of the program. I hope to fix that soon. > > The whole thing is inspired by the similar GHC reporting tools, > documented here: > http://www.haskell.org/ghc/docs/latest/html/users_guide/runtime-control.html#rts-options-gc > . The GHC tools report one more interesting piece of information, > which is how many bytes are copied by the GC. I hope we can get the > information from the Racket GC at some point as well. _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

