3 ms·
What's good about the new garbage collectors? You've only said they're new, but what makes them better? How do they compare to other languages?
by Buttons840 3y ago
What's good about the new garbage collectors? You've only said they're new, but what makes them better? How do they compare to other languages?
- hayley-patton 3y agoOne is parallel, using multiple cores to make collection happen faster, which increases GC throughput and shortens GC pauses. The other is concurrent and avoids pauses entirely, though it requires more bookkeeping from the application and might reduce throughput. I joke that the parallel GC is bringing SBCL to 2000s Java. It seems comparable enough to Java's Parallel, though SBCL aims for less space overhead by default, so you need to adjust either GC to have a fair comparison. The concurrent one is based off a collector for SML#, Haskell has a similar low latency "Alligator" collector too. (Disclaimer: I wrote the parallel collector, and I want to be clear that latency and throughput differ here, because someone didn't before.)
- aidenn0 3y agoSBCL's collector is inherited from cmucl, and it was an excellent collector at the turn of the century. However, it is very of-its-time in two major ways: 1. It is optimized for throughput over pause-times 2. It is non-parallel