[英]Processing large number of text files in java
我正在开发一个必须每天读取和处理约29K文件(约500GB)的应用程序。 这些文件将采用压缩格式,并可以在ftp上使用。
我做了什么:我打算从ftp下载文件并解压缩并使用多线程处理,这大大减少了处理时间(当活动线程数固定为较小数时)。 我已经编写了一些代码,并测试了约3.5K个文件(约32GB)。 此处的详细信息: https : //stackoverflow.com/a/32247100/3737258
但是,大约29K个文件的估计处理时间似乎仍然很高。
我正在寻找的是:任何建议/解决方案都可以帮助我将大约29K文件(约500GB)的处理时间延长至3-4小时。
请注意,必须逐行读取每个文件,并且必须对每行进行一些修改(将某些信息删除并添加一些新信息)写入新文件。
您应该分析您的应用程序,查看当前的瓶颈在哪里,然后修复它。 继续进行直到您达到所需的速度或无法进一步优化为止。
例如:
例如,您可以使用visualvm 。
很难为您提供解决方案,因为这可能只是您已达到硬件限制。
一些想法:
java.nio
代替java.io
请参阅: Java NIO FileChannel与FileOutputstream的性能/有用性 如果您对并行计算感兴趣,请尝试Apache spark,它可以完全满足您的需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.