编写文本文件 - 性能明智吗?

7 c# file

我们即将开始一个新的项目,在流程结束时,它会编写大约5,000个不同大小的文件.所有文件都是常规文本文件,我想知道编写它们的最佳方式是什么(如果有人有经验).

我正在考虑使用文件模板(预加载到内存)或直接文件流.

我想知道是否有人有经验并可以与我分享.谢谢

Phi*_*ipp 2

我建议提前编写一个原型来检查您是否可以按照您希望实现项目的方式满足性能要求。但不要忘记,硬盘有时很难评估(尽管它们的名称可能并非来自这个事实:-)):它们具有缓存,并且它们的性能可能在后台进程、碎片、文件系统等方面存在很大差异。

经验法则是减少文件写入次数。通常,如果您首先将所有内容写入内存缓冲区,然后将该缓冲区写入磁盘,那么速度是最快的。(一个非常糟糕的方法是逐个字符地写入。)

根据文件系统的不同,写入一个大文件而不是许多小文件可能会更快,因此创建 ZIP 存档可能是一种替代方案。

Windows 上有 MultiMediaFile IO API(本机),在某些情况下它比标准 I/O 机制 (http://home.roadrunner.com/~jgglatt/tech/mmio.htm) 更快,即使您的内容不是“多媒体”。