C# 如何测量文件(硬盘)I/O的特性?

C# 如何测量文件(硬盘)I/O的特性?,c#,.net,windows,file-io,C#,.net,Windows,File Io,如何测量文件(硬盘)I/O的特性?例如,在具有硬盘(速度为X)、cpu i7(或任意数量的内核)和Y数量的ram(具有Z Hz BIOS)的机器上,(在Windows操作系统上)应该是什么: 可并行写入HD的最佳文件数 可从HD并行读取的最佳文件数 文件系统的设施有助于加快写作速度。(比如:有没有一个功能或工具可以让你在不同的扇区(或硬盘)上批量写入二进制数据,然后将它们绑定为一个文件?我对操作系统中的底层文件I/O知之甚少。但是有这样的工具是合理的!) 如果以前有像part这样的工具,那么.

如何测量文件(硬盘)I/O的特性?例如,在具有硬盘(速度为X)、cpu i7(或任意数量的内核)和Y数量的ram(具有Z Hz BIOS)的机器上,(在Windows操作系统上)应该是什么:

  • 可并行写入HD的最佳文件数
  • 可从HD并行读取的最佳文件数
  • 文件系统的设施有助于加快写作速度。(比如:有没有一个功能或工具可以让你在不同的扇区(或硬盘)上批量写入二进制数据,然后将它们绑定为一个文件?我对操作系统中的底层文件I/O知之甚少。但是有这样的工具是合理的!)
  • 如果以前有像part这样的工具,那么.NET中也有吗
我希望尽可能快地(并且尽可能并行地)编写大文件(通过web或其他源流传输)!我正在用C#编写这个。它就像一个下载管理器;因此,如果流媒体被中断,它可以稍后继续。

答案(通常)取决于您的使用情况。整个操作系统是不同使用场景之间的一个重大权衡。对于NTFS文件系统,可以提到块大小设置为4k,NTFS以MTF格式存储小于块大小的文件,文件大小,文件数量,碎片等

如果您计划写入大文件,那么64k的块大小可能会更好。这是如果您计划读取大量数据。如果您读取的数据量较小,则较小的数据量是好的。操作系统在4k页面中工作,所以4k是好的。压缩(和加密?)以及SQL和Exchange只能在4k页面(iirc)上工作


如果你写小文件(谢谢!我想写大文件(通过网络或其他来源传输)尽可能快(并且尽可能并行)!我用C#编写。