为内存密集型应用程序增加JVM最大堆大小

我需要运行一个使用2GB以上内存的Java内存密集型应用程序,但是在增加堆最大大小时遇到了问题。到目前为止,我已经尝试了以下方法:


设置-Xmx参数,例如-Xmx3000m。这种方法在创建JVM时失败。根据我搜索过的内容,看起来-Xmx必须小于2GB。


使用-XX:+ AggressiveHeap选项。当我尝试这种方法时,即使我的计算机有8GB的内存,也会收到“内存不足”的错误消息,指出堆大小为1273.4 MB。


是否可以尝试增加JVM的最大堆大小的另一种方法?以下是计算机规格的摘要:


作业系统:Windows 7(64 bit)

处理器:Intel Core i7(2.66 GHz)

记忆体:8 GB

java-版本:

java version "1.6.0_18"

Java(TM) SE Runtime Environment (build 1.6.0_18-b07)

Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)


天涯尽头无女友
浏览 419回答 3
3回答

芜湖不芜

32位Java被限制为大约1.4到1.6 GB。引用32位JVM的最大理论堆限制为4G。由于各种其他限制,例如可用交换,内核地址空间使用,内存碎片和VM开销,在实践中,限制可能要低得多。在大多数现代的32位Windows系统上,最大堆大小范围为1.4G至1.6G。在32位Solaris内核上,地址空间限制为2G。在运行32位VM的64位操作系统上,最大堆大小可能更高,在许多Solaris系统上接近4G。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java