3 ms·
They promised low latency in G1, then they promised low latency in Shenandoah, now they promised it in ZGC. Okay. What JVM really really needs for performance
by lightgreen 7y ago
They promised low latency in G1, then they promised low latency in Shenandoah, now they promised it in ZGC.
Okay.
What JVM really really needs for performance is value types: a lot of GC problems will simply not exist with value types.
Project Valhalla started five (!) years ago, and they are still working on it.
JVM could also use multiple heaps per process (so multiple GCs could run independently not affecting other heap execution and GC). There were talks about it years ago, but nobody is working on it AFAIU.
- kjeetgill 7y agoI always had good experiences with G1 generally. ZGC and Shenandoah are Oracle and Redhat's respective projects with similar goals. I like the options and activies around GC all personally.
- peterashford 7y agoG1 has low latency. And as someone who programs c# for a living: I DO NOT WANT value types.
- tom_mellior 7y agoInteresting, could you expand a bit? From what I have seem the proposal for Java seems useful.
- peterashford 7y agoIn the c# I dislike the extra mental load of having to work out which rules apply to the lexical thing I see being manipulated in the code. If I see references being assigned in Java I can tell that that's the case just by looking at the code. In c# I have to see the definition of the objects to tell what semantics are being expressed by the syntax. Likewise, with properties in c# a straightforward field assignment can be pretty much anything which means again, innocent looking code can be misleading and the only way to know is to read the definitions. Java is simpler to read and I value that.