NTFS 压缩以节约磁盘空间优缺点测试

测试显示,开启磁盘压缩会降低读写速度,但能节省空间,延长固态硬盘寿命。适用于归档存储,不推荐用于频繁读写的程序。压缩决策应基于具体使用场景。

起因

希望在有限的磁盘空间存储更多的数据。
看到了 NTFS 磁盘里面的 “压缩此驱动器以节约磁盘空间” 和文件夹属性里的 “压缩内容以便节省磁盘空间”,产生了几个问题:

磁盘压缩好不好?会不会影响固态寿命?会不会降低读写性能?
应不应该开启磁盘压缩?哪些数据适合压缩存储?

于是就有了下面的测试。

测试环境

数据:总大小 32GB,包含 179 个文件夹,3479 个文件,猜猜是啥文件?
设备:USB3.0 SATA SSD

测试项目

写入耗时 & 磁盘写入量

测试项目写入时间磁盘 LBA 写入
禁用压缩,使用缓存05:381027
禁用压缩,禁用缓存05:451038
启用压缩,使用缓存09:27718

注:启用压缩时不要禁用缓存,否则会产生额外空间占用,占用的空间大于文件本体空间,不计入当前目录,但是驱动器的总可用空间会减少,暂时不清楚原理,可以通过需要重启或者重插移动硬盘的方式恢复可用空间。

空间占用 & 读取速度

测试项目占用空间 (GB)读取速度 (MB/s)读取时间
禁用压缩32.026902:03
启用压缩22.017103:10

注:读取速度中启用压缩测试按照解压后的数据量进行统计。

其他

  1. 磁盘内修改压缩属性,基本上相当于重新写一次:
    1. 不压缩 -> 压缩:磁盘写入 LBA 718,
    2. 压缩 -> 不压缩:磁盘写入 LBA 1046

结论

开启压缩会 降低数据读写速度,但是可以通过减少数据写入量,减少磁盘空间占用,提高固态使用寿命
磁盘压缩本质上还是用时间换取空间,要根据具体使用场景进行选择。
个人建议归档存储之类的文件可以开启压缩,常用软件之类的程序就别开了。如果磁盘空间实在是不够用,可以针对特定目录进行压缩,不建议整个驱动器开压缩。

### Windows 压缩驱动器节约磁盘空间功能介绍及使用方法 #### 功能概述 Windows 提供了一项名为“压缩此驱动器以节省磁盘空间”的功能,该功能基于 NTFS 文件系统的压缩技术。通过启用此功能,文件在写入磁盘时会被压缩,从而减少磁盘空间的占用[^1]。然而,这种压缩是以牺牲一定的数据读写速度为代价的,因为系统需要额外的时间来解压文件以便访问其内容。 #### 使用场景与适用性 压缩功能适合用于那些不经常访问或对性能要求不高的文件,例如归档文件、旧文档或其他非关键数据[^2]。对于频繁使用的程序、系统文件或对性能敏感的应用(如游戏、视频编辑软件等),不建议启用压缩功能,以免影响运行效率。 #### 启用方法 可以通过以下步骤启用“压缩此驱动器以节省磁盘空间”功能: 1. 右键点击目标驱动器(如 C 盘),选择“属性”。 2. 在“常规”选项卡下,勾选“压缩此驱动器以节省磁盘空间”复选框。 3. 点击“确定”,并根据提示选择是否仅压缩当前文件夹或包括所有子文件夹和文件。 #### 技术细节 启用压缩后,NTFS 文件系统会自动将文件压缩存储在磁盘上。当用户或程序访问这些文件时,系统会在后台实时解压它们。尽管这可以显著节省磁盘空间,但会对 CPU 资源造成额外负担,并可能降低文件的读写速度[^2]。 #### 示例代码:检查驱动器是否已启用压缩 以下 Python 代码可用于检查指定驱动器是否启用了压缩功能: ```python import os import win32api def is_drive_compressed(drive): try: volume_info = win32api.GetVolumeInformation(drive) flags = volume_info[3] return bool(flags & 0x200000) # Check for FILE_SUPPORTS_COMPRESSION flag except Exception as e: print(f"Error checking drive compression: {e}") return False print(is_drive_compressed("C:\\")) ``` #### 注意事项 - 如果磁盘空间不足且无法扩展硬件容量,可以考虑针对特定目录启用压缩,而不是整个驱动器[^3]。 - 对于固态硬盘(SSD),启用压缩可能会减少写入操作次数,从而延长其使用寿命。然而,现代 SSD 的耐用性通常已经足够高,因此这一优势可能并不明显。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值