我正在尝试优化将大量小文件创建到 SSD 磁盘的性能。
ConcurrentBag<string[]> cb = new ConcurrentBag<string[]>();
cb.AsParallel().ForAll(fa => File.WriteAllText(fa[0], fa[1]));
总计数ConcurrentBag<string[]>
= 80048,cb.Sum(gbc => Encoding.UTF8.GetByteCount( gbc[1] ) );
返回 393441217 字节。
我在其他地方做 a xml.Save();
,它创建了一个 ~750MB 的文件。
第一种情况需要 3 分 30 秒才能完成。第二个20秒。
我知道处理所有单独的写入操作需要一些开销,但 3 分 30 秒似乎仍然有点长。我已经尝试过使用 forall 进行并行化,这很有帮助(在此之前需要 6-8 分钟才能完成)。我可以在代码中添加哪些其他修改来优化批量文件创建的性能?