为什么内存管理在 Java VM 中如此明显?
我正在尝试编写一些简单的基于Spring的Web应用程序,并将它们部署到Tomcat。几乎立即,我遇到了使用-XX:MaxPermSize(以及-Xmx和-Xms)自定义Tomcat的JVM设置的需要;没有这个,服务器很容易耗尽PermGen空间。
为什么与其他垃圾回收语言相比,Java VM 存在这样的问题?比较Java,Ruby,Perl和Python中X的“调整X内存使用量”计数,表明Java在Google中的点击量比其他语言的总和高出一个数量级。
我还对技术论文/博客文章/等的引用感兴趣,这些论文/博客文章/等解释了JVM GC实现背后的设计选择,跨不同的JVM或与其他解释型语言VM的比较(例如,将Sun或IBM JVM与Parrot进行比较)。为什么 JVM 用户仍然必须处理非自动调整堆/permgen 大小,这在技术上是否有原因?