Ask HN: State of the art Garbage collectors in AOT compiled languages?

3 points by szemet ↗ HN
Every time garbage collection is discussed here, the common opinion is that GC can have better general performance compared to manual memory management. And the usual examples mentioned are the GCs used by managed languages, especially the highly tunable ones implemented in (Open)JDK (G1, Shenandoah, ZGC, or the commercial Azul C4,... ).

For AOT compiled languages are there any similar: generic high performance state of the art implementation out there?

Or does the state of the art inherently depend on capabilities that are available only in managed environments (some dynamic pointer handling magic)?

Can Go GC be a canditate? Or is it good only because gets much help from escape analysis, and the typical patterns of Go applications - independent goroutines (usually network sessions) without memory sharing?

Or Haskell GC? Which has high performance cleaning up of short living immutable data (which is a mandatory feature there) - but AFAIK it can't handle large stable heap without considerable latency penalty

Or Ocaml GC is the one (last time I've read about it, it was fast, but still not parallel)?

Or when the GC of an AOT compiled language is good, it is always due to some specialization - synergies with the underlying language and its common usage patterns/domain?

(Finally: I know that AOT compilation is an option for Java too - will it have similar GC performance then?)

0 comments

[ 2.9 ms ] story [ 7.4 ms ] thread

No comments yet.