4 ms·
How Garbage Collection differs in the three big JVMs
- earl 15y agoA fascinating jvm they missed is azul. They claim they can handle 300+GB heaps with pauses < 10 ms by radically changing how gc works. Skim this: http://www.artima.com/lejava/articles/azul_pauseless_gc.html http://www.artima.com/lejava/articles/azul_pauseless_gc.html Essentially it continually compacts the heap, but simply doesn't remap all pointers to an object. They then tool the OS vm system / TLB with memory barriers and fix up pointers on access instead of fixing up pointers on relocation/compaction. Also, this is a pretty interesting talk about what exactly goes on in a modern jvm. Worth listening to http://jeremymanson.blogspot.com/2011/04/cliff-click-in-jvm-does-what.html http://jeremymanson.blogspot.com/2011/04/cliff-click-in-jvm-... The speaker works for azul systems. Regarding the article, I wonder if it's worthwhile or if there is any research into recycling objects or something like c++ placement new? I guess it doesn't really make sense because in java objects are mostly just a collection of pointers, whereas in C++ objects can themselves be fairly large.
- deadc0de 15y agoThis describes the state of GC like it was 10 years ago (and in a few places incorrectly), at least in Hotspot. Shameless promotion: try out the new G1 (-XX:+UseG1GC), better to use the latest EA JDK7 build.
- jwr 15y agoG1 isn't necessarily the right solution for everyone. In my measurements I found it to be more unpredictable than concurrent mark&sweep. I'm still waiting for it to be improved.
- runT1ME 15y agoDid you have concurrent collections turned on? It almost always reduces overall throughput of the collector. However in many workloads I expect the G1 to be superior to the current throughput collector....
- smanek 15y agoIs there a better document that explains how the GC works in the latest Java 6 releases (particularly Hotspot)? I'm doing some GC tuning these days - and there seems to be a lot of false/stale information out there. Something this readable, but accurate, would be helpful.
- jonburs 15y agohttp://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html http://www.oracle.com/technetwork/java/javase/gc-tuning-6-14... is the canonical source.
- mikopp 15y agoCould you point out what is incorrect? I'm happy to fix it if you can point out the errors and the source of your information. G1 will be great, at least in theory, but it's not production ready. Many of our readers need to tune their GC in WebSphere/WebLogic Environments in production environments, they can't use G1 yet.