News for hackers. Stuff that matters.
Re:Azul's Pauseless Garbage Collector by prodigal_erik on Sunday December 19, 2010 @06:29PM (#2022822)
Sounds like fascinating work. I would have expected big unpredictable performance problems from using a read barrier to lazily fixup references to moved objects, given how expensive each page fault is in a superscalar pipeline.

But it's hard to recommend a vendor who's opaque about pricing. If we have to ask, we probably can't afford it.

Re:Azul's Pauseless Garbage Collector by modeless on Sunday December 19, 2010 @07:20PM (#2022913)
Page faults are usually expensive because the bits you need must be read in from disk. In this case the bits you need are still in RAM, and could even conceivably be in cache. It's probably not tremendously more expensive than a cache miss (which is still quite expensive, but hopefully the collector is fixing up pointers fast enough that actual page faults are relatively rare).
Re:Azul's Pauseless Garbage Collector by binaryfinery on Sunday December 19, 2010 @11:11PM (#2023279)
They'd be about as expensive as throwing an exception. And the live objects would, I assume, quickly pull all the other live objects into the active pages. I love this hack.
Re:Azul's Pauseless Garbage Collector by danvet on Monday December 20, 2010 @02:54AM (#2023696)
Furthermore they're using 2mb pages instead of the usual 4kb (on x86). That cuts the overhead by a factor of 512 alone.

The remaining problem I see is cache-trashing because on every minor page-fault you have to run a part of your mark&sweep algo, surely kicking out all the application data&code from caches. That's inevitable less efficient than a stop-the-world approach.

Re:Azul's Pauseless Garbage Collector by schumihan on Sunday December 19, 2010 @09:39PM (#2023142)
On their hardware appliance, they use a special instruction to implement the barrier. For software appliance, the performance may be a real problem.
Re:Azul's Pauseless Garbage Collector by ggruschow on Sunday December 19, 2010 @09:49PM (#2023156)
To be fair, if you've got a budget that supports a multi-developer team and you fundamentally need their solution, you can afford their prices. They're not insane, and if you just ask they're not opaque.

On the other hand, did you know you can turn off the garbage collector on CPython?

Re:Azul's Pauseless Garbage Collector by runT1ME on Sunday December 19, 2010 @10:56PM (#2023252)
If i'm not mistaken, the 'read barrier' is only active during a mark of the heap, not all the time. So, considering that marking can be parallelized and there's a good chance a lot of the heap is now dead objects (you only mark live ones) you shouldn't be too affected.