论坛首页 Java企业应用论坛

大数据量Excel Import导致OOM问题

浏览 6293 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-31  
正在做一个Excel import的东东,不知道论坛上用POI的朋友有没有考虑过大数据量Excel文件导入导致内存溢出的问题

HSSFWorkbook wb=new HSSFWorkbook(new FileInputStream(fileName));


从本地得到的FileInputStream为HSSFWorkbook初始化是一次性全部加在到内存中(每行不到10个字段,总共不到20000行数据),这一句就直接抛出OOM异常

引用

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at org.apache.poi.hssf.usermodel.HSSFRow.createCellFromRecord(HSSFRow.java:181)
        at org.apache.poi.hssf.usermodel.HSSFSheet.setPropertiesFromSheet(HSSFSheet.java:182)
        at org.apache.poi.hssf.usermodel.HSSFSheet.<init>(HSSFSheet.java:123)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:264)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:168)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:297)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:278)
        at javaapplication4.Main.main(Main.java:30)



提问之前有查过相关贴,看到有的兄弟能处理1x万行的数据导入,不知道如何做到的.加载之前将大excel拆分成若干小文件吗?如何办到?
   发表时间:2008-06-01  
内存加大点  -Xms?
默认只有64M
0 请登录后投票
   发表时间:2008-06-01  
kayoo 写道
内存加大点  -Xms?
默认只有64M


的确是这样
用java -Xms512m -Xmx1204m -jar xxx.jar
6万行的数据(Excel文件最大6.5w行per sheet)不到2秒都可以读入内存
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics