4 ms·
Alternatively: any medium sized high throughput Java app needs somebody with a PhD in garbage collection tuning, because otherwise the app will just grind to a
by rb2k_ 10y ago
Alternatively: any medium sized high throughput Java app needs somebody with a PhD in garbage collection tuning, because otherwise the app will just grind to a halt regularly :(
- eropple 10y agoTwo things: - I became the JVM whisperer for a fairly large company a whole year out of college. JVM tuning is not that complex, nor is the Java memory model. Shipilev's talk on the JMM[1] is almost everything you could ever need to know, and you can refer to it when you need it. - That you actually can meaningfully tune the JVM GC is something you can't say about a lot of the alternatives. Like, I love the CLR, but the "self-tuning" nature of the garbage collector has bitten me more than once in the past. [1] - https://shipilev.net/blog/2014/jmm-pragmatics/ https://shipilev.net/blog/2014/jmm-pragmatics/
- stevehiehn 10y agoThanks for that link! Very timely. I have been trying to gain a solid understanding of the java memory model.
- mindcrime 10y agoIt's not really that bad. And on the plus side, VisualVM helps a ton because you can connect to a running JVM and actually see what's happening with the garbage collector (among other things).
- rb2k_ 10y agoI've seen high throughput apps doing 45 second "stop the world" garbage collection cycles because of high disk I/O and enabled GC logging (the process just sat there waiting for some I/O time to flush the GC log file). So in theory tuning GC isn't thaaaaaat complicated. In practice however I've seen horrible things :(
- mindcrime 10y agoSure, I'm not saying pathological cases can't come up. Just that JVM GC tuning isn't usually that big a deal. IOW, it isn't some "black art" that only uber-wizards can comprehend..