• 1 Post
  • 100 Comments
Joined 1 year ago
cake
Cake day: June 2nd, 2023

help-circle



  • DaPorkchop_@lemmy.mltoLinux@lemmy.mlJava uses double ram.
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    1 month ago

    There are stilly plenty of native libraries and the JVM itself. For instance, the networking library (Netty) uses off-heap memory which it preallocates in fairly large blocks. The server will spawn quite a few threads both for networking and for handling async chunk loading+generation, each of which will add likely multiple megabytes of off-heap memory for stack space and thread-locals and GC state and system memory allocator state and I/O buffers. And none of this is accounting for the memory used by the JVM itself, which includes up to a few hundred megabytes of space for JIT-compiled code, JIT compiler state such as code profiling information (in practice a good chunk of opcodes need to track this), method signatures and field layouts and superclass+superinterface information for every single loaded class (for modern Minecraft, this is well into the 10s of thousands), full uncompressed bytecode for every single method in every single loaded class. If you’re using G1 or Shenandoah (you almost certainly are), add the GC card table, which IIRC is one byte per alignment unit of heap space (so by default, one byte per 8 bytes of JVM heap) (I don’t recall if this is bitpacked, I don’t think it is for performance reasons). I could go on, but you get the picture.















  • Aside from letting you cram more circuitry onto the same size chip, smaller transistors means you can get better power efficiency and reduce heat output.

    Basically, even if you just take an existing design and use it to make chips at a smaller node size, you get chips which run cooler and with less power. Those chips can then get you the same performance with better efficiency (e.g. same speed but better battery life), or you can crank up the speed so that you get more speed for the same amount of power as the original.

    And as mentioned above, because the transistors are smaller, you can fit more stuff onto the chip. So you can make even more complex chips which also still run more efficiently than their predecessors (both because of the direct power savings from using smaller transistors, and because designs become more efficient).