那些年掉过的内存溢出的坑:java.lang.OutOfMemoryError: Java heap space

   前段时间结果leader分给我一个调优调性能的任务:把100w的MP3

数据下载到本地并压缩成zip包。然后我看了之前的旧的代码,问题多多。我决定重新新方法。使用多线程下载,使用countDownLatch来控制主线程子线程次级线程的执行次序。当我把数据从十万,五十万,一百万进行测试的时候,在五十万的时候就报了这个错误,然后按照网上的修改了jvm运行内存,WebLogic的内存等等,五十万勉强可以通过,当数据到达一百万的时候还是报了内存溢出的错误。因为不知道如何去调节内存了,而且按理说一百万的数据不应该会占太大的内存;所以决定从代码中入手,发现了这个:

因为这里log在控制台输出了100万的数据并且写入log文件中;这就导致内存激增一直溢出。把这些大数据量的数据log注释掉从新下载运行,然后没有内存溢出了。问题解决。

总结:很多容易忽略的代码很可能导致问题的出现,所以开始越到问题时候要好好排查,不要忽略那些认为不会出错的地方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值