Impacts of the squeak garbage collector
Marcel Weiher
marcel at metaobject.com
Mon Feb 18 11:41:54 UTC 2002
On Tuesday, January 29, 2002, at 11:15 PM, Scott A Crosby wrote:
> Quick summary:
> The default paramaters for the GC are a poor choice for RAM-rich
> modern
> computers. A 3x performance gain on GC is obtainable, if you're willing
> to
> dedicate RAM to squeak. (My desktop has 768, so I think nothing of
> running
> with 100-500mb)
>
> The current squeak GC does an incremental collection every 4000
> allocations. Although this can lead to sub-ms latency, it is excessive,
> especially for long running or many GUI applications.
>
> So, running macrobenchmarks, and counting GC time, I get:
>
> 22 seconds of GC time. (only GC when you absolutely must, 500mb RAM.)
> 60 seconds of GC time. (GC every 4000 allocations)
> +15 additional seconds of fullGC's in either case [*]
>
> A typical run of macrobenchmarks is about 360 seconds on the P2-450.
>
> I'm not sure the threshold is where GC time drops by 2/3, but the fact
> that it does is an indication that other people can have similar
> gains. I
> even see some gain at 50mb and 200kallocs/GC.
Just a thought: since the macro-benchmarks are doing full-GCs between
each benchmark (not timed), could it be that the performance
improvements are just artifacts of the benchmarking process?
In essence, you're getting a GC that's 'free' between each of the
benchmarks. So if you can delay the need for a GC until the end of each
benchmark, then you will have 0 GC overhead in the benchmarks, without
any accompanying real-world gain.
Marcel
--
Marcel Weiher Metaobject Software Technologies
marcel at metaobject.com www.metaobject.com
Metaprogramming for the Graphic Arts. HOM, IDEAs, MetaAd etc.
More information about the Squeak-dev
mailing list
|