64位java不会分配超过2GB的堆内存

我正在从eclipse运行我的程序并使用64位java,但我仍然无法分配超过2GB的内存。 我正在运行一些基准,所以我需要大量的内存。

我在eclipse.ini中有这个:-Xmx8g

我希望它能用掉我所有的记忆。 这可能是因为32位版本的eclipse? 我不确定我对日食的看法。

我在运行程序时尝试将-Xmx8g发送到VMArgs。 我正在运行64位Windows 7和64位JRE。

在运行配置屏幕中,转到Arguments选项卡,将-Xmx8g添加到VM参数文本框。

在尝试了其他所有内容后,看起来VMArguments根本就没有在eclipse中工作。

在eclipse中更改DEFAULT VM args工作(最后!):

将VM参数插入JRE:当Eclipse打开时,打开Preferences(对于Windows:位于Window菜单项下。对于Mac:位于Eclipse菜单项下),打开Java部分,单击Installed JREs,单击JRE是使用(可能是jre6),单击Edit …按钮,然后将其插入默认VM参数:

-Xms256M -Xmx8192M

试着这样做:

 System.getProperty("sun.arch.data.model") 

并查看它是否在程序中返回32或64

此外,您需要将-Xmx添加到您的程序的启动参数中,而不仅仅是eclipse。

您可以通过执行以下操作validation程序的-Xmx是否已正确配置:

 Runtime.getRuntime().maxMemory(); 

您只需要在eclipse.ini添加-d64即可