同事用java开发了一个系统,其中有一个功能是下载大约10万笔数据到Excel中.当上线后,很多用户反映下载数据量大的时候就不能成功,但有时可以,所以结论就是系统不稳定,这个问题拖了很久没有解决. 在与这个系统的开发人员看了下代码后,知道下载excel用的是apache中的POI组件.原来的代码逻辑是将要下载的数据整个从数据库捞出来,然后循环一笔笔地调用POI的API生成cell, row,全部完成了,再输出到客户端的流中.监控发现,一旦下载时,java虚机所占用的内存直线上升,且很久都不会降下…