高性能平台运行java程序内容溢出

这两天在高性能平台上运行java程序时报错,错误类型如下:

Reading POS tagger model from /dawnfs/users/nlplab/user/tree/lib/english-left3words-distsim.tagger ... done [2.3 sec].
Loading parser from serialized file edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz ... done [3.1 sec].
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded

一开始人为是程序中出现死循环导致,但是把语料单独提出来在本机运行时完全正确,没有错误。

立即向大牛请教:得知程序中new 了太多不该new的类以及其他数据结构,尽量不去new.

于是一下午的事件都用来 clear code了,原以为程序能正确运行不再报错,可是运行了两个半小时候

以后再次出现同样的问题, 超大牛一语道破天机,申请的内存空间不够用,增加内存空间即可,我

原以为又要clear code 了呢,

出错时提交程序的命令如下: 默认申请的空间是:-Xmx1024M

java -Xms1024m -Xmx1024m -Djava.ext.dirs=./lib -jar bioEvent.jar /dawnfs/users/nlplab/user/tree/config/Event.properties

修改后的命令如下:

java -Xmx8g -Djava.ext.dirs=./lib -jar bioEvent.jar /dawnfs/users/nlplab/user/tree/config/Event.properties

对于为何申请8g 内存有些不明白,为什么不是10g或者4g,  解释如下:只能说操作系统没学好啊

32位操作系统最大也就只能支持4G内存(2的32次方就是4G)。这是根据操作系统内存寻址有关的。
比如32位的操作系统,它的寻址最大就是2的32次方的内存空间了,内存分配多了就超出范围,
超出部分还是寻不到的,对于64位机,最大能用的内存空间就是8G了



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值