问题描述
- listFiles 大数据量时内存溢出
-
描述:
获取一个文件集合,通过文件获取文件名集合,再根据文件内容筛选文件,存储在Map里
问题:
文件服务器A文件夹下,存在近7万个文件,以XML格式存储,调用listFiles,再做put操作时,
内存就会溢出,调整过eclipse的堆与非堆内存,加大了1024M,也同样抛出内存溢出异常,
恳请大家指点迷津,给个好的解决方案,或者案例参考,谢谢了这个方法需要将内容存储在Map对象内然后返回这个Map对象,给其他成员调用,这个内存溢出,因该是在Map对象 put 的时候就hold不住了
解决方案
文件内容不要全部存内存,用完的就释放掉。
解决方案二:
http://bbs.csdn.net/topics/310249869
可参考在此贴
解决方案三:
这个方法需要将内容存储在Map对象内然后返回这个Map对象,给其他成员调用,这个内存溢出,因该是在Map对象 put 的时候就hold不住了
解决方案四:
内存溢出的话 你得及时把文件吐出去啊,内存只留符合条件的文件Path不用把内容都放在map里啊
时间: 2024-11-02 05:18:32