如何查看特定文件的碎片?
有没有一种工具可以向我显示磁盘上的特定文件,它的碎片程度如何? (如果我要以线性方式读取该文件,物理磁盘需要进行多少次查找)
Is there a tool that would show me for a specific file on disk, how fragmented it is? (How many seeks does physical disk need to make if I were to read that file in a linear fashion)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Sysinternals 工具 contig 与参数
-a
可以对文件夹及其子文件夹中的一个文件或所有文件执行此操作。The Sysinternals tool contig with parameter
-a
can do this for a file or all files in a folder and its subfolders.您可以使用
DeviceIoControl
与FSCTL_GET_VOLUME_BITMAP
,
FSCTL_GET_RETRIEVAL_POINTERS
和FSCTL_MOVE_FILE
,请参阅 对文件进行碎片整理。如果您搜索
FSCTL_MOVE_FILE
,您还可以找到不同的代码示例。这是 C 另一个位于 .NET 中。
You can use
DeviceIoControl
withFSCTL_GET_VOLUME_BITMAP
,FSCTL_GET_RETRIEVAL_POINTERS
andFSCTL_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.
如果您使用 Linux,filefrag 就是您正在寻找的工具。
使用 -v 参数和文件名来获取碎片的详细列表。
http://linux.die.net/man/8/filefrag
filefrag is the tool you're looking for, if you're using Linux.
Use -v parameter with filename to get detailed list of fragmentation.
http://linux.die.net/man/8/filefrag
当然,“碎片”是值得怀疑的:
小心你得出的结论。
And, of course, "fragmentation" is suspect:
Be careful about what conclusions you draw.
fsutil file queryallocranges offset=长度=
将显示您需要管理员权限的文件范围。fsutil file queryallocranges offset=<o> length=<l> <file>
will show you the file's extents you will need admin rights.