NTFS 压缩文件使用多种 LZ77 算法。 在 4KB 的簇大小下,文件将以 64KB 为区块大小进行压缩。如果压缩后区块尺寸从 64KB 减小到了 60KB 或者更小,则 NTFS 就认为多余的 4KB 是空白的稀疏文件簇,也即认为它们没有内容。因此,这种模式将会有效的提升随机访问的速度。但是在随即写入的时候,大文件可能会被分区成非常多的小片段, 片段之间会有许多很小的空隙。
压缩文件最合适用于很少写入、平常顺序访问、本身没有被压缩的文件。压缩小于 4KB 或者本身已经被压缩过(如 .zip、.jpg 或者 .avi 格式)的文件可能会导致文件比原来更大并且显著降低速度。应该尽量避免压缩可执行文件,如 .EXE 和 .DLL 文件,因为他们可能内部也会使用 4KB 的大小对内容进行分页。决不要压缩引导系统是需要的系统文件,例如驱动程序,或者 NTDLR、winload.exe 或者 BOOTMGR。
压缩高压缩比的文件,例如 HTML 或者文本文件,可能会增加对他们的访问速度,因为解压缩所需的时间要小于读取完整数据所花费的时间。
通常情况下对于文件的读写是透明的,但并非所有情况下都始终如此。 [29] Microsoft 建议避免在保存远程配置文件的服务器系统或者网络共享位置上使用压缩,因为这会显著地增加让处理器的负担。
硬盘空间受限的单用户操作系统可以有效地利用 NTFS 压缩。由于在计算机中速度最慢的访问不是 CPU 而是硬盘,因此 NTFS 压缩可以同时提高受限制的、慢速储存空间的空间和速度利用率。
当某个程序(如下载管理器)无法创建没有内容的稀疏文件的时候,NTFS 压缩也可以作为稀疏文件的替代实现方式。
可是压缩是个双刃剑,如何选择合适的内容区进行压缩。微软文档认为,NTFS更适用于客户端,比如经常读,写入较少的文件,不适合频繁写入的应用比如服务器,因为会增加cpu负担,对于服务器这种cpu饥渴性应用,还是不要的好。
而且一些人认为这是因为LZ77算法的加压效率比压缩更高,解压几乎不受任何影响,所以NTFS压缩更适合读盘。什么是读多写少的文件呢?
Program Files就是一个读取居多的最常用的文件夹,一般写入的情况只会发生在安装更新软件,写入频繁的有TEMP,页面文件等。也的确,现在的windows 软件设置都被保存到个人文件夹下了,program files这种文件更新完之后只是负责读取任务。而且压缩之后空间不仅缩小了,读取性能也会有不错提升。
No comments:
Post a Comment