架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 57171|回复: 2

[资料] JAVA Error occurred during initialization of VM 错误的解决方法

[复制链接]
发表于 2017-8-14 16:49:22 | 显示全部楼层 |阅读模式
Error occurred during initialization of VM
Could not reserve enough space for 3145728KB object heap



最近在开发Java的程序。本来我是一直很喜欢Java的内存管理的,不需要担心分配内存,只管分配,垃圾收集器自己会给你回收内存的。现在开发的程序数据量很大,为了速度快,我准备把所有的信息加载进内存,这样可以保证快速响应。我还在反复算内存,想想自己的数据量,现在刚开始的时候应该够了(我的机器是4G内存,虽然Windows就认3.5G,但是比起我现在的数据量应该没问题)。

  没想到第一个实验的程序,跑了几个小时,就遇到了Out of Memory Exception了。看看自己的虚拟机设置,我设置的是-Xms512M -Xmx1024M。想都没想,直接改成-Xms512M -Xmx2048M,结果直接就Could not reserve enough space for object heap。程序都起不来了。这才发现原来最大内存还有限制。上网搜了一下,发现很多讨论这个问题的文章。最终在BEA的DEV2DEV论坛发现了最有用的 一篇

  这里的版主YuLimin 做了测试,得出结论:

  公司 JVM版本                  最大内存(兆)client    最大内存(兆)server

  SUN 1.5.x                          1492                            1520

  SUN 1.5.5(Linux)             2634                            2660

  SUN 1.4.2                          1564                            1564

  SUN 1.4.2(Linux)             1900                            1260

  IBM 1.4.2(Linux)             2047                             N/A

  BEA JRockit 1.5 (U3)      1909                             1902

  我现在用的是JDK1.6. 0_05,测试了一下。在Client状态下最大是,我的JDK不认-Server参数,测试不了Server状态。估计差不多。

  SUN 1.6.0                          1442                           N/a

  看样子用Java想用大内存也是不可能的了。而且一般的说法是内存太大了,垃圾收集的时间就会长。这也可以理解,一般是内存不够用了才收集的,扫描2G内存比1G当然要慢多了,而且内存对象多了,估计关系是指数上升的。

  下面附上YuLimin的测试方法和测试记录。

  测试方法:在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。



QQ截图20170814164707.jpg

测试出jvm最大支持的内存,然后,在系统设置环境变量

变量名:_JAVA_OPTIONS
值:-Xmx1G

QQ截图20170814164853.jpg




上一篇:jquery 全屏插件“jQuery Fullscreen Plugin”使用
下一篇:【SSL】OV、DV和EV证书的区别
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2017-8-14 16:51:30 | 显示全部楼层
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

QQ截图20170814165010.jpg

java version "1.8.0_144" 64位 服务端模式,80g内存,没有问题

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2020-9-1 22:29:04 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-29 20:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表