5

我有一些想法想在磁盘碎片整理竞技场中尝试一下。我得出的结论是,作为实现的先驱,能够将磁盘置于碎片状态是很有用的。在我看来,这似乎是一种比碎片整理更难实现的状态。我认为商业碎片整理公司可能已经解决了这个问题。

所以我的问题......

一个人如何去实现一个分片器?在使用它来测试碎片整理程序的上下文中,有什么意义?

4

4 回答 4

7

也许您应该在模拟/模拟磁盘上测试您的碎片整理算法,而不是对实际磁盘进行碎片整理?只有当您对算法本身按规定工作感到满意时,您才能使用实际磁盘 API 在实际磁盘上进行测试。

您甚至可以拍摄实际碎片磁盘(您的或您认识的人的)的快照,并将这些数据用作测试的模拟模型。

于 2009-03-29T20:55:59.260 回答
2

如何最好地分段取决于文件系统。

通常,同时打开大量文件。打开文件将创建一个新的目录条目,但不会导致为该文件写入块。但是现在依次遍历每个文件,写入一个块。这通常会导致下一个空闲块被消耗,这将导致您的所有文件彼此碎片化。

对现有文件进行分段是另一回事。基本上,做同样的事情,但在现有文件的文件副本上执行此操作,删除原始文件并重命名副本。

于 2009-03-29T20:56:36.140 回答
2

我在这里可能过于简单化了,但是如果您人为地对磁盘进行分段,那么您运行的任何测试都将仅适用于您的分段器创建的碎片,而不是任何现实世界的碎片。您最终可能会针对不代表真实世界事件的碎片工具中的假设进行优化。

拍一些碎片磁盘的磁盘映像不是更容易更准确吗?你有没有朋友或同事相信你不会对他们的数据做任何反社会的事情?

于 2009-03-29T21:08:31.930 回答
0

碎片是一个数学问题,因此您在执行特定操作时试图最大化硬盘驱动器磁头的行进距离。所以为了有效地分割一些东西,你需要先定义具体的操作

于 2009-03-29T21:02:56.233 回答