Garbage Collection Optimization for High-Throughput and Low-Latency Java Apps
engineering.linkedin.com
engineering.linkedin.com
"Groningen is a framework to run automated experiments on servers that run on the Java Virtual Machine (JVM) such that the most optimal JVM settings outcome can be reached with the least amount of human effort and time while maximizing safety."
This is due to a wide variety of GC options and a long history of iterating on best practices. I'm curious how well newer languages that focus on performance but offer GC (Go, Rust, etc) have dealt with this. Is it a case where they have just jumped to some "best of breed" GC configuration set? Or do programmers in these languages just get left without all the lessons learned on the JVM.
I'm honestly curious, what is the state of the world in non-JVM languages and GC optimization?
Disclaimer: not a GC expert!
Also it's worth noting that Rust does not have a GC yet, and I don't believe anyone has really got in there and iterated on possibilities yet. (Graydon, Felix (pnkfelix) and I have all done some experimentation with it, but all proof-of-concept/very basic, not really bullet-proof/production-ready things.)
Note that we finally have a moving/compacting GC API which uses SpiderMonkey's GC for Rust objects as part of Servo, so you can view that as a Rust GC of sorts if you like.