Why is memory management so visible in Java VM?

Posted by Emil on Stack Overflow See other posts from Stack Overflow or by Emil
Published on 2010-03-31T04:39:15Z Indexed on 2010/04/10 4:23 UTC
Read the original article Hit count: 301

Filed under:
|
|

I'm playing around with writing some simple Spring-based web apps and deploying them to Tomcat. Almost immediately, I run into the need to customize the Tomcat's JVM settings with -XX:MaxPermSize (and -Xmx and -Xms); without this, the server easily runs out of PermGen space.

Why is this such an issue for Java VMs compared to other garbage collected languages? Comparing counts of "tune X memory usage" for X in Java, Ruby, Perl and Python, shows that Java has easily an order of magnitude more hits in Google than the other languages combined.

I'd also be interested in references to technical papers/blog-posts/etc explaining design choices behind JVM GC implementations, across different JVMs or compared to other interpreted language VMs (e.g. comparing Sun or IBM JVM to Parrot). Are there technical reasons why JVM users still have to deal with non-auto-tuning heap/permgen sizes?

© Stack Overflow or respective owner

Related posts about java

Related posts about memory-management