为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

天涯尽头无女友 2019-10-26 13:04:08
我需要运行一个使用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 GBjava-版本: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)
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

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。


查看完整回答
反对 回复 2019-10-26
  • 3 回答
  • 0 关注
  • 418 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信