On Thursday, 15 January 2015 at 17:05:32 UTC, Ola Fosheim Grøstad
wrote:
On Thursday, 15 January 2015 at 15:31:17 UTC, Peter Alexander
wrote:
On Thursday, 15 January 2015 at 15:24:55 UTC, Ola Fosheim
Grøstad wrote:
That would be nice, because then a precise garbage collector
could choose between local collection scans and global
collection scans.
I think something like this is part of the plan, but shared
semantics are still up in the air.
That sounds like a very important aspect of a plan to get fast
GC without completely changing the language and non-gc
performance.
I've looked at bit at how to do a fast stop-the-thread GC.
Estimates on what the hardware supports (bandwidth and cache
performance) suggests that it is possible to get acceptable
rates for not-densely-linked heaps with some tweaks to
semantics:
- shared-awareness in new-expressions to support local
collection
- removing class-destructors
- locating traceable pointers to the same cachelines in class
instances (negative offsets is the easy solution)
Then you cn use a ache-optimized collector using batched
non-caching queues with prefetching to get bitmaps that fits in
1st level cache without wrecking the cache for other threads
and having collection dominated by cache misses.
Yah, this was all discussed at length not that long ago, although
I can't find the thread just now.