记录一下最近遇到的一个JVM堆内存的问题

记录一下最近遇到的一个JVM堆内存的问题

最近有一个需求,后台将几张图片和部分用户信息整合在一起,最终合成一张图片。

代码思路

为了保证图片清晰,我选择把所有的图片和用户信息都“压”在一张白板背景上(这里也试过其他方案,比如先导出为word在转图片,或者pdf转图片等,都有一个问题就是失真,内部的图片会很模糊)
1、开发环境: JDK1.8u211、tomcat8.6.5,maven3.6.2
2、开发工具: IDEA2022.3
3、问题经过: 在开发的时候是一步一测试的,没有任何问题。当部署到tomcat上时,批量导出的时候就会卡主不动,看了日志发现了一个异常 java.lang.OutOfMemoryError: Java heap space (Jvm堆空间),在这个问题上浪费了很多时间(幸亏需求不急),最后总结了几个解决方案

一、 优化代码,也是最合适的方案,不过这个需要对Jvm gc有深层次的理解,一般像我这样的小码农是适用不了了。
二、修改Xms和Xmx的空间,有两种方式:
1、在注册表中修改,HKEY_LOCAL_MACHINE > SOFTWARE > WOW6432Node > Apache Software Foundation > Procrun 2.0 > 你的tomcat > Parametes > java ,然后修改xms和xmx即可(根据你机器的内存自行修改,不可以超过最大内存)。
如下图:
在这里插入图片描述
2、找到你tomcat > bin > catalina.bat 选择编辑,在第二行加上
set JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:PermSize=512M -XX:MaxPermSize=1024M
在这里插入图片描述
本人是工作两年的新人,遇到不常见的问题也只是大海捞针式的在网络上找方法,以上方案参考 https://blog.csdn.net/weixin_45816407/article/details/127456118

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值