3 ms·
These points are true in my experience (EDIT: 1.5 startup time sounds like too much) and they are enough to debunk the claim "The JVM is not that heavy". I hadn
by jstimpfle 10y ago
These points are true in my experience (EDIT: 1.5 startup time sounds like too much) and they are enough to debunk the claim "The JVM is not that heavy". I hadn't ever heard anybody considering disk consumption or installation time before, when making that claim.
To add,
4. Garbage collection and lack of value typed records. As far as I know there is currently no way around going full SOA (structures of arrays (of primitive types)) for large data collections.
Object overhead (memory usage) and GC overhead are the reason why only SOA will work (and it's a pain because the language doesn't make it convenient) if you have like >10^7 objects. (That's my personal experience from a 2-month project, and I normally don't use Java).
- pjmlp 10y ago> As far as I know there is currently no way around going full SOA There are if you use language extensions like Packed Objects on the IBM JVM or Object Layouts on Azul. So just like C, you have C and then GCC C, clang C, .... Eventually Java 10 will fix this, but for those that like to live on the edge there are already snapshots available.
- needusername 10y ago> Object Layouts on Azul. https://objectlayout.github.io/ObjectLayout/ https://objectlayout.github.io/ObjectLayout/ does not save you any headers. It just allows you to control where your objects are in memory and compiler optimizations based on this. It does not help you with memory footprint. Also I'm not sure if it's really implemented on Zing considering that from the outside the project seems dead. > Eventually Java 10 will fix this I would not be so sure. The challenges especially regarding primitive generics are not to be underestimated. See http://cr.openjdk.java.net/~jrose/values/shady-values.html http://cr.openjdk.java.net/~jrose/values/shady-values.html
- pjmlp 10y ago> It just allows you to control where your objects are in memory and compiler optimizations based on this. It does not help you with memory footprint. It is already better than what you get on Hotspot. > The challenges especially regarding primitive generics are not to be underestimated. See The challenge here is due to how Java designers to build them in first place. Modula-3 and Eiffel are two examples of languages with proper generics, value types and toolchains that do AOT compilation to native code. So I am still hopeful. However, like everything, some challenges are technical and some are political.