记录一次因导出导致的生产事故

博客讲述了在生产环境中遇到order服务因导出功能导致的内存溢出问题。作者通过收集日志,发现5000条数据占用了约10MB内存,最终定位问题在于将数据存入List后再写入Excel。为解决这个问题,作者改为直接从数据库分页查询并写入Excel,成功避免了内存溢出。这个案例提醒大家在处理大量数据导出时要注意性能优化。
摘要由CSDN通过智能技术生成
收到报警邮件,生产环境order服务挂了,顿时炸锅了呀,先把服务重启了,然后排查问题。
类似这种问题比较麻烦,需要收集生产环境的日志,来分析。经过1个小时左右,找到问题所在,是因为导出的功能导致内存溢出。一个导出为什么会内存溢出呢?本地调试,导出30w+的数据,越来越慢,最后内存溢出。导出的逻辑是分页将数据存在List,最后写入excel。看了下5000条数据的占用内存大概在10M左右,我的天。这下到解决问题的时候了,怎么搞呢....,脑顿大开。都分页查了,为何不每次把查出来的结果集直接写到excel呢?可以试一试,果然,问题解决了,开心开心,在此,给同学们提个醒,遇到导出大量数据的时候一定要注意性能问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值