是否有工具可以显示磁盘上的特定文件,它的碎片程度如何?(如果我要以线性方式读取该文件,物理磁盘需要进行多少次查找)
问问题
9450 次
5 回答
17
带有参数的 Sysinternals 工具contig-a
可以对文件夹及其子文件夹中的文件或所有文件执行此操作。
于 2010-08-25T18:48:03.227 回答
10
You can use DeviceIoControl
with FSCTL_GET_VOLUME_BITMAP
, FSCTL_GET_RETRIEVAL_POINTERS
and FSCTL_MOVE_FILE
, see Defragmenting Files.
You can also find different code examples if you search for FSCTL_MOVE_FILE
.
Here is one in C and another in .NET.
于 2010-05-13T23:32:20.280 回答
6
如果您使用的是 Linux,filefrag 是您正在寻找的工具。使用带有文件名的 -v 参数来获取详细的碎片列表。 http://linux.die.net/man/8/filefrag
于 2012-02-14T17:07:32.287 回答
3
当然,“碎片化”是值得怀疑的:
- 该文件可能在同一个圆柱体中分段。没有寻道开销,只有旋转延迟。或者不是,因为这些碎片可能是最佳顺序(这一顺序的机会几乎为零)。
- 该文件可能是“连续的”,但跨越多个柱面。即使按顺序读取也会导致查找。
- 该文件可能位于条带集上,您不知道边界在哪里。您可以跳到另一个控制器、另一个主轴或同一驱动器上的另一个分区。
小心你得出的结论。
于 2010-09-17T21:33:35.903 回答
3
fsutil file queryallocranges offset=<o> length=<l> <file>
将显示您需要管理员权限的文件范围。
于 2010-08-25T18:25:25.267 回答