3 ms·
I'm the biggest fanboy of Go, but since Java 25 the default garbage collector (ZGC) is very similar to Go's.
by Pooge 2mo ago
I'm the biggest fanboy of Go, but since Java 25 the default garbage collector (ZGC) is very similar to Go's.
- hashmash 2mo agoLow pause collectors like ZGC and Shenandoah must be enabled explicitly. G1 is still the default. It should also be noted that the low pause Azul C4 collector was available in 2010, but it was a commercial product.
- Pooge 2mo agoYou're right; apologies! I set the JVM flag quite some time ago, haha.
- age123456gpg 2mo agoVery similar, in the same way non-compacting and non-generational collector is similar to compacting generational :shrug:
- tzone 2mo agoGarbage collector alone can't do what happens in Go language+runtime. Simplest example is that there is no way to allocate fixed arrays with non-pointer structs in Java. That is just not possible in the language. Design of Go allows programmer to rewrite their program to make it as GC efficient as needed. You can even have essentially zero GC overhead and do stuff manually for really high performance needs. And you can also write regular code when GC isn't a big deal. Those options simply don't exist in Java language. Your only bet in Java would be to embed some C code which is a nightmare of its own. There is a reason why almost all backened systems that run on JVM are a huge pain in the ass even at moderate scale. They all end up rewriting parts in other languages and at the end just rewriting the whole thing.
- vips7L 2mo agoThose options will exist soon: https://news.ycombinator.com/item?id=49119063 https://news.ycombinator.com/item?id=49119063