【发布时间】:2012-12-01 00:01:25
【问题描述】:
我正在开展一个项目,以从大量机器生成的文件(100k+ 总计 15gig)中提取一些数据,以 excel (2003) 每行一个文件。在将每行提取的每个文件的数据写入excel(使用JExcel API)之前,我将内存中的所有文件加载到数组列表中。
一切正常,直到大约 90k 文件被读取并写入打开的工作簿,然后它停止工作。
在读取和提取所有文件后,我执行 workbook.write() 和 workbook.close(),因为当磁盘“挂起”时,不会将任何内容写入磁盘上的实际文件。
没有错误被抛出。有关解决此问题的任何想法。非常感谢。
【问题讨论】:
-
如果您需要帮助,您确实需要发布一些代码。你试过调试器吗?
-
你看过机器的性能了吗?您是否正在分页到磁盘(例如,VM 没有内存不足,但您的 RAM 已满?)。
-
顺便说一句,你为什么不一边读一边写出工作簿?如果您阅读所有内容,但就像您说的那样,应用程序在 90% 的地方都失败了,至少您最终会得到 90k 个工作簿,而不是每次都必须从头开始。
-
为什么要加载整个文件而不是一次读取一行?您所做的只是浪费内存并增加延迟。
-
@John3136 该应用程序非常适合较小的文件集(
标签: java