操作系统- RAM大小和虚拟内存与JVM堆大小之间的关系



对于性能测试,我需要2 GB的堆内存,所以我通过"-Xmx2048m"在java设置中设置参数,并增加虚拟内存…但是在运行应用程序时,它会给出诸如"无法加载java运行时环境"one_answers"在同一进程中运行的几个JVM导致错误"之类的错误(事实上,对于任何超过1 GB的值,它都不会给出相同的错误)。那么是否有可能将堆内存设置为2 GB?或者最大只能为1gb ?如果是,怎么做??我使用windows 7, 64位,内存大小为8gb,使用java 1.6

由于您运行的是32位JVM,因此进程可以使用的内存数量是有限的。由于虚拟内存的布局方式,32位进程只能访问2 GB的内存(或者在特殊设置下最多3-4 GB)。由于Java需要一些内存用于自己的簿记,而这些内存不是应用程序可用的堆的一部分,因此-Xmx的实际可用限制必须低于2 GB。根据这个答案,Windows上32位Java的限制是-Xmx1500m(不确定它在新版本中是否有变化,但由于上面概述的限制,它必须低于2 GB,所以它可能一直保持在1500 MB)。

最新更新