0

我有一个 Eclipse(基于插件的)应用程序,我尝试从 jnlp 文件(我使用 maven tycho 构建它)从 Java 64bit 开始。启动应用程序后不久,它不再响应,有时甚至会自动关闭。如果使用 Java 32 位启动应用程序,则应用程序可以正常工作。

如果我检查日志文件,我会得到 java.lang.OutOfMemoryError: PermGen space 异常。我已将 MaxPermSize 增加到 756m,但仍然无法正常工作。我可以看到,当应用程序被阻塞时,CPU 几乎达到了 100% 的使用率。

如果您对我可以解决问题或一些解释有任何建议,请分享。

谢谢!

4

2 回答 2

0

当您加载许多类时,烫发空间会被填满。

从这个常见问题解答

如何判断永久代是否已满?

从 1.4.2 开始 -XX:+PrintGCDetails 将打印有关在每次垃圾回收时收集的堆的所有部分的信息。完整的收藏

[Full GC [Tenured: 30437K->33739K(280576K), 0.7050569 secs] 106231K->33739K(362112K), [Perm : 2919K->2919K(16384K)], 0.7052334 secs]

这个例子表明,永久代收集的很少(从收集前使用的 2919K 变为收集后使用的 2919K),永久代的当前大小为 16384K。

如果您遇到类加载器泄漏,您可能会对这篇文章“如何修复”文章感兴趣。

于 2012-06-18T16:45:53.347 回答
0

我的解决方案是更改为 Java 1.7。我之前尝试过使用 Java 1.6.0_26_x64 和 Java 1.6.0_29_x64 并得到了上述错误。

我现在已更改为 Java 1.7.0_04_x64,它运行顺畅,完全没有阻塞。

编辑:它也适用于 Java 1.6.0_33。

于 2012-06-19T08:31:32.383 回答