POI框架EXCEL解析性能优化
背景
在做商品EXCEL的时候,线上发现了Full GC,排查得知是商家搞了一个巨大的excel,单商品发布接口平均耗时400ms(调用sell耗时200ms左右,系统自身处理商品同步耗时150ms左右),对于3000个商品的发布,耗时在20min左右,这20min内该excel的内存一直未能释放。
第一时间想到的是POI真坑,真吃内存。 事情发生了就想着怎么处理,
- 止血 线上机器分批重启,
- 马上加一个excel行数的限制然后发布 线上半个小时左右就没有任何问题了。
思考
为什么poi这么吃内存,poi这么老了,肯定有人踩过这个坑,撸起袖子,搜poi full gc. 很多文档将的都太粗糙了,本质没有说透
原因
- excel本质上是xml文件的集合体。从office 2007起开始使用xml来存档和数据交换:https://zh.wikipedia
