Closed WillSewell closed 7 years ago
Merged, thanks! Sorry for the delay.
No problem. By the way @gasche, I'm not sure if you looked at the slides, but I actually mentioned your blog post in the talk. Kudos for your work there! It lead me down an interesting road of looking into the OCaml GC, which I knew nothing about previously.
Thanks -- I was told after your talk. Interestingly, someone contributed a Java implementation to my gitlab repository, and the results are noticeably worse than Haskell's: even the G1 collector which is supposed to be the most incremental has latencies in around 60-70ms on my machine, compared to 50ms for Haskell.
(I should take the time to put up a proper README with a language comparison and encourage other people to contribute their implementation for other languages: it sounds like you've found a fun problem to turn into a micro-benchmark.)
That is interesting. I had assumed that the JVM GC would perform well in this case. Particularly because I thought that the main reason for having a different algorithm in the old generation is to optimise for this exact problem.
I wonder if it can be tuned though. Because it's incremental, I don't see why you can't get a knob that lets you bound the maximum pause time, letting you trade latency for throughput.
Sounds like a great idea: encouraging contributions using other languages.
@avsm any chance I can get this merged? :)