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

如何测量文件(硬盘)I / O的特点? 例如用硬盘(带速度X)的一台机器上和一个cpu i7的(或核心的任何数目)和柱塞的Y元(其中Z赫兹BIOS)将是什么(在Windows OS):

  • 文件的最佳数量可写入到并行HD?
  • 文件的最佳数目,能够从HD并行读取?
  • 文件系统帮助更快的著作设施。 (我爱:有没有让你写上不同的部门(或顽固派二进制数据批次功能或工具有),然后将它们绑定为一个文件,我不知道很多关于底层文件I / O的操作系统,但它会?合理有这样的工具!)
  • 如果说之前有这样的工具的一部分,还有在.NET吗?

我想写大文件(流通过网络或其他来源)一样快(和并口)越好! 我在C#编写此。 它就像一个下载管理器; 因此,如果流被中断,它可以在以后进行。

--------------解决方案-------------

答案(正如经常)取决于您的使用。 整个操作系统是不同的使用场景有一个很大的权衡。 对于NTFS文件系统,人们可以提块大小为4K,NTFS存储文件小于MTF块大小,文件大小,文件数量,碎片等。

如果你打算写大文件则64K的块大小可能是好的。 也就是说,如果你打算读取大量数据。 如果你读了少量数据,那么更小的尺寸都不错。 操作系统工作在4K的页面,因此4K好。 压缩(和加密?),以及SQL和Exchange仅4K页(IIRC)工作。

如果你写的小文件(<4K),他们将被存储在MFT里,这样你就不必做“的ekstra跳”。 这是在写操作时尤其有用(读可能有MFT缓存)。 在序列MFT存储文件(即块1000-1010,2000-2010),因此碎片会使MFT大。 在之间平行文件写入磁盘的主要原因碎裂之一,另一个是删除文件。 一个文件你可以预先分配所需的大小和Windows将试图找到磁盘上的一个合适的地方来对抗碎片。 也有像O&O碎片整理的实时磁盘碎片整理程序。

窗户binarystream几乎直接映射到磁盘上的物理位置,因此,使用不同的读/写方法将不会产生尽可能多的性能提升,因为其它因素。 为了获得最大速度的程序用于直接内存映射到磁盘technieue。 见http://en.wikipedia.org/wiki/Memory-mapped_file

有在Windows一个选项(设备管理器,来说硬盘下),以增加磁盘上缓存。 这是危险的,因为如果UT可能会损坏文件系统的电脑蓝屏或失去权力,而是给出了写小文件大的性能提升(和所有的写操作)。 如果磁盘忙,这是为争取时间将减少特别有价值。 Windows中使用所谓的电梯算法这基本上意味着它的表面上移动硬盘磁头来回服务于它的移动方向的任何应用程序。

希望这可以帮助。 :)

分类:C# 时间:2015-03-16 人气:198
本文关键词: .NET,C#,窗,文件IO
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.733 (s). 10 q(s)