换掉内存

时间:2012-03-10 10:11:14

标签: java

我正在研究java应用程序,我在VM选项中设置了以下配置

  • -Xms和-Xmx选项设置为1024m
  • -XX:MaxPermSize = 128m硬件:32位Windows 7系统,2GB内存。

我经常遇到java出来的交换空间错误。可能是什么原因?请帮帮我。

2 个答案:

答案 0 :(得分:1)

原因是您的操作系统没有为正在运行的作业混合配置足够的交换空间。交换空间是光盘上的一个区域,当虚拟内存页面多于物理内存页面时,操作系统会复制内存页面。

所以发生的事情是你的JVM要求的虚拟内存比操作系统提供的更多。

(更新以包括彼得的评论)

一些可能的修复:

  • 假设硬件和操作系统允许,则添加更多物理内存。 (在这种情况下,OS 应该允许的答案......)

  • 使用更多交换空间配置系统。

  • 杀死计算机上运行的其他一些非必要的应用程序和服务。

  • 更改Java应用程序的JVM选项以减小堆大小。

答案 1 :(得分:0)

“Hotspot VM”下的Java release notes说明了这个确切的错误;

  

如果您看到此症状,请考虑增加可用的交换空间   通过为虚拟内存分配更多磁盘和/或限制   您同时运行的应用程序数。你也可以   通过减少-Xmx标志的值来减少内存使用,   这限制了Java对象堆的大小​​。

换句话说,你的机器正在使用内存做太多其他事情,以便能够提供1GB,你告诉Java VM应该能够使用它。