我正在使用标准的Lift平台(maven和jetty)进行开发。我每隔几天就会反复遇到这个问题:
Exception in thread "7048009@qtp-3179125-12" java.lang.OutOfMemoryError: PermGen space
2009-09-15 19:41:38.629::WARN: handle failed
java.lang.OutOfMemoryError: PermGen space
这是在我的开发环境中。这不是个问题,因为我可以不停地重启服务器。在部署时我没有遇到这些问题,所以这不是一个真正的问题。我只是好奇。
我对JVM不太了解。我认为我正确地认为永久代内存用于类和interned字符串等东西?我记得的有点混淆了与.NET内存模型...
这是为什么呢?默认值是否设置得过低?是否与Scala必须为Function对象和类似FP的事物创建的所有辅助对象有关?每次我重新启动Jetty并使用新编写的代码(每几分钟一次),我想它会重新加载类等。但即使如此,也不可能那么多吧?而且JVM难道不能处理大量的类吗?
谢谢
Joe