NTFS拥有一个称为“ 主文件表”的东西。当您阅读有关内容时,它听起来真的很酷。
您可以看到ext3最多可以执行约95%的磁盘使用,而MFT的存在意味着NTFS确实不希望您使用超过90%的磁盘。但是我将假定这不是您的问题,并且您的问题是许多小文件上的许多操作。
这里的区别之一是创建一个小文件时会发生什么。如果文件小于块大小,则不会将其写入自己的块,而是存储在MFT中。如果文件保持创建时的原样,这很好。但是在实践中,这意味着当svn触摸文件来创建文件,然后将其添加到该文件,从该文件中删除或仅通过对其进行修改(不足以将其移动到其自身的块中)时,该操作相当缓慢。同样,仅读取大量小文件也会对它们全部驻留的MFT造成一定的压力,每个块有多个。为什么要这样做?它可以避免碎片,并更有效地使用更多块,这通常是一件好事。
相比之下,在ext2和3中,每个文件的文件块都存储在目录元数据所在目录的旁边(如果可能的话,如果磁盘没有碎片并且您有大约20%的可用空间)。这意味着,随着svn打开目录,基本上免费地将许多块缓存在驱动器上的16mb缓存中,然后再次缓存在内核的缓存中。这些文件可能包括.svn文件和上次更新的修订文件。这很方便,因为这些可能是svn接下来要查看的一些文件。NTFS不能执行此操作,尽管MFT的大部分应缓存在系统中,但它们可能不是您接下来要使用的部分。