2014-03-28 138 views
0

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

+0

也许你正在运行一个32位版本的Java? –

+0

是的Michal,我们只运行32位Java ..这是可能的32位Java? – user3198683

回答

0

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