有谁知道为什么 java 7 无法收集应用程序的永久代,导致 java.lang.OutOfMemoryError: PermGen,而 java 5 收集永久代并且应用程序运行良好?
应用程序在循环中评估 jython 表达式,一次迭代大约是。5 秒。循环体如下所示:
PythonInterpreter py = new PythonInterpreter();
py.set("AI", 1);
((PyInteger)py.eval(expr)).getValue()
为在 java 7 和 java 5 中运行的应用程序拍摄的 jvisual vm 屏幕截图。
在这两种情况下,都使用相同的参数:
-Xmx700m
-XX:MaxPermSize=100m
-XX:+HeapDumpOnOutOfMemoryError
-Xloggc:"C:\Temp\gc.log" -XX:+PrintGCDetails -XX:-TraceClassUnloading -XX:+PrintClassHistogram