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
即可