首页 文章

RAM大小与虚拟内存之间的关系与JVM堆大小

提问于
浏览
0

对于性能测试,我需要2 GB的堆内存,所以我通过“-Xmx2048m”在java设置中设置参数,并且还增加了虚拟内存......但是在运行应用程序时,它给出的错误就像“java run”时间环境无法加载“和”在同一进程中运行的几个JVM导致错误“,(实际上,对于超过1 GB的任何值,它不会给出相同的错误) . 那么可以将堆内存设置为2 GB吗?或者它最多只能1 GB?如果有,怎么办?我正在使用Windows 7,64位,RAM大小为8 GB ......并使用java 1.6

1 回答

  • 0

    由于您运行的是32位JVM,因此进程可以使用多少内存 . 由于虚拟内存的布局方式,32位进程只能访问2 GB内存(或者使用特殊设置最多可访问3-4 GB) . 由于Java需要一些内存用于自己的簿记,这不是应用程序可用的堆的一部分,因此 -Xmx 的实际可用限制必须低于2 GB . 根据this answer,Windows上32位Java的限制为 -Xmx1500m (不确定它是否在较新版本中发生了变化,但由于上述限制,它必须低于2 GB,因此它可能会保留在1500 MB) .

相关问题