使用NTFS压缩的文件是否已解压缩到磁盘或内存中?

Modified on: Mon, 11 Feb 2019 09:20:05 +0800

NTFS解压缩如何在Windows中运行?据微软称,NTFS解压缩是通过扩展文件然后使用它来完成的。这听起来是正确的,但我的问题是这个过程是如何在技术上发生的。

Windows是否将压缩文件加载到内存中,在内存中展开,并从内存中读取?或者它是否将压缩文件加载到内存中,将其扩展到磁盘或内存中,写入磁盘,然后读取?

我试图弄清楚是否可以通过使用NTFS压缩来提高计算机的性能。这样,无法处理那么多写操作的慢速磁盘驱动器或SSD总是会有更少的数据写入和读取,而我大部分时间空闲的强大处理器可以解压缩文件,提高我的存储速度和健康状况

最佳答案

Windows将文件解压缩到内存中。在磁盘上执行操作会完全消除任何速度改进,并会导致大量不必要的磁盘写入。请参阅这篇关于NTFS稀疏的Microsoft博客文章的结尾文件和压缩

  

      
  1. NTFS确定正在访问哪个压缩单元。
  2.   
  3. 读取压缩单元的整个分配范围。
  4.   
  5. 如果单元未压缩,则跳转到步骤5.否则,NTFS将尝试保留(但不分配)将解压缩的CU写回磁盘所需的空间。如果磁盘上存在足够的可用空间,则在读取期间应用程序可能会获得ERROR_DISK_FULL。
  6.   
  7. CU将在内存中解压缩
  8.   
  9. 解压缩的字节范围将映射到缓存中并返回给请求的应用程序。
  10.   
  11. ...
  12.   醇>

当然,如果内存不足,解压缩过程使用的内存可能导致其他内存被分页并写入页面文件中的磁盘。幸运的是,只有包含程序实际读取的部分的块才会被解压缩;如果你只需要几个字节,NTFS就不必解压缩整个事情。

如果您的SSD速度很快,那么您可能无法从NTFS压缩中获得速度提升。可以想象,处理器花费解压缩数据的时间加上磁盘读取压缩数据所花费的时间可能会超过SSD读取未压缩数据所花费的时间。它还取决于您使用的文件的大小。可压缩文件的最小大小范围为8 KB到64 KB,具体取决于您的群集大小。任何小于该大小的文件都不会被压缩,但会添加少量的簿记。

如果您对压缩文件进行大量编写,由于使用了压缩算法(LZ),您可能会看到很多速度差异。

进一步阅读:NTFS压缩如何影响性能?

作者:Community,Ben N

相关问答

添加新评论