在 本机上用eclipse导出一百多万的数据导出,没有问题,但是部署在应用服务器上就会内存溢出,而且我把本机的tomcat也拷贝过去了。其它一个功能,比这数据还多几W,只不过少写出了几个字段,也能正常导出。
int totalSize = behaviorPortraitService.querySiletUserPortraitCountMonth(sietUserPortraitForm.getParams()); int pageNum = 0; if (totalSize % 1000000 == 0) { pageNum = totalSize / 1000000; }else{ pageNum = totalSize / 1000000 + 1; } write.append(" 年/月 IMSI 手机号码 沉默天数 开卡时间" + enter); outSTr = response.getOutputStream(); // 建立 buff = new BufferedOutputStream(outSTr); // 循环总页数,得到每页的页数 for (int i = 1; i <= pageNum; i++) { // 根据页数,得到 PageResult对象 list = behaviorPortraitService.exportSiletUserPortraitMonth(sietUserPortraitForm.getParams(),i,100000); // 循环List集合进行写入 for (int j = 0; j < list.size(); j++) { // 循环集合,写入数据到TXT中 write.append(list.get(j).getBegin_endtime()); write.append(" " + list.get(j).getImsi()); write.append(" " + list.get(j).getMsisdn()); write.append(" "+ list.get(j).getSilencedays()); write.append(" " + list.get(j).getStarttime() + enter); } // 写完一个分页对象之后,清空List,清楚缓存 list.clear(); System.gc(); } buff.write(write.toString().getBytes("UTF-8"));
错误信息:
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.OutOfMemoryError: Java heap space
拉莫斯之舞
相关分类