Comment by NooneAtAll3

16 hours ago

doesn't java also?

I heard that was a common complaint for minecraft

Minecraft for somewhat silly reasons was largely stuck using Java8 for ~a decade longer than it should have which meant that it was using some fairly outdated GC algorithms.

  • "silly reasons" being Java breaking backwards compatibility

    decade seems a usual timescale for that, considering f.e. python 2->3

What do you mean - if Java returns memory to the OS? Which one - Java heap of the malloc/free by the JVM?

  • Java is pretty greedy with the memory it claims. Especially historically it was pretty hard to get the JVM to release memory back to the OS.

    To an outsider, that looks like the JVM heap just steadily growing, which is easy to mistake for a memory leak.

    • > Especially historically it was pretty hard to get the JVM to release memory back to the OS.

      This feels like a huge understatement. I still have some PTSD around when I did Java professionally between like 2005 and 2014.

      The early part of that was particularly horrible.

    • Java has a quite strict max heap setting, it's very uncommon to let it allocate up to 25% of the system memory (the default). It won't grow past that point, though.

      Baring bugs/native leaks - Java has a very predictable memory allocation.

      1 reply →

    • This only really ends up being a problem on windows. On systems with proper virtual memory setups, the cost of unused memory is very low (since the the OS can just page it out)

      6 replies →