如何提高流写机的写入速度

本文关键字:速度 写机 何提高 | 更新日期: 2023-09-27 18:04:39

如何提高流写入器写入83MB csv文件的速度。我已经将缓冲区大小增加到65536,但它也消耗了更多的时间。如何提高速度。


StreamWriter writer =new streamWriter(
      new FileStream(filePath, FileMode.CreateNew), Encoding.UTF8, 65536))
string str=string.Empty;
while((str = reader.ReadLine())!=null)
    writer.WriteLine(str)}        
writer.Close()

如何提高流写机的写入速度

根据CSV文件包含的行数,您可能会得到一个执行数百万次的循环。那么多次访问磁盘不是一个好主意。

最简单的方法(如果你有内存)是在内存中读取字符串[]中的整个CSV文件(使用file . readall()我认为),做你的处理并写它一次(file . writeall()我认为)。这将大大提高你的性能。

另一种方法是使用异步读/写,增加缓冲区大小并创建一种机制来读取更大的数据块。如果你只阅读一行,那么使用大的缓冲区是没有用的。

我会尝试提高缓冲区甚至更多。在这个缓冲区大小下,创建整个文件需要8200多次写操作。试试256K或512K的缓存

根据您的注释显示您的代码实际在做什么:

File.WriteAllText( filePath, reader.ReadToEnd() );