logoalt Hacker News

quotemstryesterday at 7:57 PM4 repliesview on HN

ZGC is extremely good work.

https://wiki.openjdk.org/spaces/zgc/pages/34668579/Main

> ZGC performs all expensive work concurrently, without stopping the execution of application threads for more than a millisecond. It is suitable for applications which require low latency. Pause times are independent of the heap size that is being used. ZGC works well with heap sizes from a few hundred megabytes to 16TB.

Go's GC is also very good: https://go.dev/blog/greenteagc.

V8's Orinoco is also pretty good now. It's improved a lot over the past decade and is now mostly-parallel. (A decade is about how long one of these things takes: high-performance GC is hard.)

I'm also a fan of MPS: it's a big of dark horse because it's more a GC construction kit than a ready-to-go GC, but it's fast and flexible, and I'd start with it any day over Boehm if I were making a VM from scratch.


Replies

platinumradyesterday at 8:03 PM

If I were writing this language, I'd probably just compile it to Go, although that means Rust extensions would either incur cgo costs or have to be replaced with Go extensions.

show 2 replies
adastra22yesterday at 8:07 PM

A millisecond is an eternity. It is 1/3 of the entire time allocated to a frame update in a modern game.

show 3 replies
RedCometyesterday at 9:42 PM

Are any of those actually pauseless like he asked for?

yunuskusakyesterday at 11:40 PM

[flagged]