While we're on the topic, can anyone share the tools and methods they use to visualize GC in their live environments? Back when I worked at a Scala shop I spent an incredible amount of time in the VisualGC plugin tab of VisualVM. This was fairly onerous because its a fully seperate java app connecting to a jmx port on each jvm you want to look at. It also required setting the refresh rate to 100ms to be able to see the consumption patters clearly in the graphs, which in turn required a fairly low latency and stable network connection to not be riddled with false-positives (meaning, our mac-mini driven tv's with wifi connections).
Does anyone have a better tooling story to share? (on any lang/runtime). I found that things like datadog and newrelic were completely useless because their time-resolution completely obscured the underlying behavior pattern. Like trying to measure the tide with one datapoint a day.
The Azul Zing inbuilt tooling was already very very nice 3 years ago when I got to try it for a bit. Of course in the trial with Zing GC was no longer something to worry about as that just worked :) I couldn't get the budget round and some other work reduced GC pressure so did not use in production. Now hoping the Shenadoah GC will bring some of the benefits of Zing for free or redhat included pricing.
After hearing about GC for well over 20 years now, I would have thought it would have been a Solved Problem(tm) by now! It's clearly a situation where every conceivable solution seems to have tradeoffs.
Interesting post, although I had to force-reload the page to get the animations to restart...
Does anyone have a better tooling story to share? (on any lang/runtime). I found that things like datadog and newrelic were completely useless because their time-resolution completely obscured the underlying behavior pattern. Like trying to measure the tide with one datapoint a day.