堆内存溢出--OutofMemoryError:Java heap space

本文介绍了作者在解决Java程序内存溢出问题的过程中,通过VisualVm工具分析内存使用情况,发现程序在处理大数据量时导致内存占用过高。解决方案包括调整JVM参数-Xms和-Xmx以增加分配内存,并提供了在Linux环境下部署时的命令行参数示例。
摘要由CSDN通过智能技术生成

前言:这是我踩了两天的坑,得到的最终的结论,希望这篇文章能够给像我这样的小白程序猿一点帮助


原因分析:

就我当前的错误而言,我的错误在于当前运行的程序得到的内存,不支持我的程序的运行,例如:当前分给我的程序只有2G,而我的程序运行起来却用了1.8G,当运行的程序达到最大内存百分之80的时候就会出现溢出的异常

还有就是死循环,一直出创建新的对象,没有进行垃圾回收导致的溢出异常

先看一下我报的错误异常信息:


在我的思路中----------------

首先你得知道你当前运行程序用了当前内存的多少,才能知道你所需要的内存大小

这里使用的是jdk中的一个小插件----VisualVm,这个插件可以看到线程信息,内存大小,cpu等

这个插件在你本机安装jdk/bin/VisualVm.exe目录下,双击打开。

你就会看到线上运行的程序,

1.点击你的程序(1),

2.点击监视你就会看到你的内存信息(红色框框中的信息),当前内存分到。最大值为         2G,

在看蓝色的条条你就能看出当前最顶峰的时候占用的内存是多少,这也是你下边需要扩展的内存大小

怎么判断你的程序占用了多少,点击右上堆Dump ----表 ----大小 你就能看到当前操作的信息

我的是在进行byte[]添加数据库时引发的,内存溢出,你看看这个狗东西一下就用了百分之84的内存,害得我搞了两天,

现在错误原因找到了,那么就想办法进行解决吧

提示:前边说了一大堆的废话,下边就是解决办法

已经知道了,是因为分发的内存不够导致的那么就进行扩大内存

我在网上找了好多都是让我在idea路径下 help--Edit Custom Vm Options中修改 -Xms 以及 -Xmx 这两个值,当前我进行修改后并没有生效,这也是让我困惑的原因(有知道为什么的大佬请指点一下小弟

解决方案

线上解决方案:

我这个分的内存是4G,你可能根据我上边所得你的顶峰值来计算得处你的扩展的内存大小

部署环境下:Liunx下

java  -jar -Xms -Xmx  jar包

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA-YYEDS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值