问了好多牛人都没有解决的读写文件问题,更牛的人请进 小弟现在做一个文件分析程序,目标是把300多每个2G的文件进行按行数据筛选,请问高手大约需要多长时间能读完?怎样能提高读取的速度?我处理完发现需要一周左右能筛选完成,速度很致命,小弟黔驴技穷,请大家指点如何能提高目前这种需求下的效率?严重感谢大家! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需要按行读取并分析,所以很慢需要好多“天”,所以想用内存文件映射,但是FileChannel怎么和readLine()结合呢? 假设 CPU 使用率不到 100%,那么这种任务的时间花费应该按照硬盘读写速度来算。假设硬盘读写平均速度为 70MB/s,那么读完所有文件(600G)所需时间约为:600*1024/70=8777秒=2.43小时。如果读的同时要写的话,假设读取速度降为 10MB/s,那么花费时间应该是 24 小时左右。但据楼主所言需要一个礼拜,可能的原因是:1、这是一个大量消耗 CPU 的任务;2、这是一个大量消耗内存的任务,而且虚拟内存的使用极大的降低了执行效率。 按照楼主所描述的,问题的瓶颈应该在数据的处理上面。也就是说,IO读取每一行记录,已经很快了,但是,读出的记录,处理起来就相对很慢。就是IO等处理的现象。最好,应该优化一下处理方面的代码,如果,处理过程中也涉及到了IO操作,那么,相对数度又会下降很多。这时再考虑使用FileChannel来优化程序。读取,一般情况下,使用BufferedReader就应该很快了。写入的程序,考虑使用FileChannel效率会高一些。当然,采用写200行再刷新缓存的方式,也可以提升一些性能。 请问各位大能 我现在在学SE 部分 看看还差什么? volatile不可靠呀 询问一下,如何在监听JButton后实现在另一个类中画图 java swt sql 语句 问题 下位框属性... 如何实现图片压缩包中的图片预览,急! 有没有这样的JDBC Driver. public static void main(String[] args) 在java中如何判断目录是否存在 怎样,才能得到系统时间? SQL 的别名中,遇到的问题!!!!!!!!!!!!!!!! 配置ve的问题~~
1、这是一个大量消耗 CPU 的任务;
2、这是一个大量消耗内存的任务,而且虚拟内存的使用极大的降低了执行效率。
就是IO等处理的现象。最好,应该优化一下处理方面的代码,如果,处理过程中也涉及到了IO操作,那么,相对数度又会下降很多。
这时再考虑使用FileChannel来优化程序。
读取,一般情况下,使用BufferedReader就应该很快了。
写入的程序,考虑使用FileChannel效率会高一些。当然,采用写200行再刷新缓存的方式,也可以提升一些性能。