10 ms·
It’s a GC tuned for imperative languages that prefer mutation over allocation, which is the exact inverse of what BEAM needs.
by omginternets 4y ago
It’s a GC tuned for imperative languages that prefer mutation over allocation, which is the exact inverse of what BEAM needs.
- pron 4y agoOpenJDK's GCs do have elaborate mechanisms to support mutation, but if they're unused they impose no extra overhead.
- omginternets 4y agoI think you may be missing the point. What the JVM doesn't have is elaborate optimizations to support copies, e.g. a generational GC.
- NobleExpress 4y agoHm? G1 is a generational GC? And so is Serial/Parallel. And work on generational ZGC is ongoing [1]. Not sure what you're referring to here. [1]: https://openjdk.org/jeps/439 https://openjdk.org/jeps/439
- omginternets 4y agoI was mistaken!
- pron 4y agoThe JVM has a selection of four generational GCs. Two of them are the most sophisticated GCs available anywhere. It's not a matter of some unique brilliance. Java is simply in such high demand that it has the sufficient resources to have state of the art optimising compilers and GCs.
- omginternets 4y agoReally? I had no idea. Can you suggest further reading?
- pron 4y agohttps://docs.oracle.com/en/java/javase/20/gctuning/available-collectors.html https://docs.oracle.com/en/java/javase/20/gctuning/available... https://youtu.be/OhPGN2Av44E https://youtu.be/OhPGN2Av44E https://youtu.be/bLJJ3CY1aE8 https://youtu.be/bLJJ3CY1aE8