【发布时间】:2012-08-03 06:14:48
【问题描述】:
我遇到了一个关于 outOfMemory 错误的奇怪问题。 我写了一个应用程序,它在某些部分内存使用量很大。 在我的笔记本电脑(linux,64 位,eclipse indigo,vmargs:xms:40,xmx:512,4gb 物理内存)上,应用程序运行没有任何问题。 在另一台电脑(WinXP SP3、32 位、eclipse juno、vmargs:xms:40、xmx:1024(!)、2gb 物理内存)上,应用程序以标题中所述的错误终止。 两台机器都使用 oracle 的 java 7 jdk。 这怎么可能,应用程序在另一台比我的笔记本电脑拥有更多堆空间的电脑上失败。 我在笔记本电脑上开发了应用程序...但我认为这不应该是导致此错误的原因,对吧?
【问题讨论】:
-
您的虚拟内存可能已用完。 64 位操作系统可以为进程提供比 32 位操作系统更多的虚拟内存。
-
你能粘贴堆栈跟踪吗?我怀疑你可能会用完 PermGen 空间或类似的东西。
-
问题已经回答了,斯蒂芬和彼得的回答非常有帮助。当前解决此问题的方法是在运行配置中定义 vm args。
标签: java memory out-of-memory cross-platform jvm-arguments