记录一次因导出导致的生产事故
程序员文章站
2022-07-13 13:16:19
...
收到报警邮件,生产环境order服务挂了,顿时炸锅了呀,先把服务重启了,然后排查问题。
类似这种问题比较麻烦,需要收集生产环境的日志,来分析。经过1个小时左右,找到问题所在,是因为导出的功能导致内存溢出。一个导出为什么会内存溢出呢?本地调试,导出30w+的数据,越来越慢,最后内存溢出。导出的逻辑是分页将数据存在List,最后写入excel。看了下5000条数据的占用内存大概在10M左右,我的天。这下到解决问题的时候了,怎么搞呢....,脑顿大开。都分页查了,为何不每次把查出来的结果集直接写到excel呢?可以试一试,果然,问题解决了,开心开心,在此,给同学们提个醒,遇到导出大量数据的时候一定要注意性能问题。