Answers:
是的,磁盘压缩可以在特定情况下提供更好的性能:
ZFS和Btrfs(这都是最近的绿色设计)都有压缩的规定是有原因的。
在HPC空间中,当应用程序从内存到磁盘进行检查点时,CPU通常根本没有做任何有用的事情。这段时间基本上是纯开销。任何使用CPU来减少时间的方法都是成功的。
磁盘压缩永远不会为您提供更好的性能。
由于使用了快速的现代CPU,它可能几乎不会给您带来任何损失,但这是完全不同的事情。
您假设必须从磁盘/向磁盘传输较少的数据可以提高性能;但是大数据传输几乎从来都不是I / O瓶颈:真正的瓶颈是寻道时间和延迟。现代硬盘在以大文件持续进行数据传输时确实非常快,但减慢速度的却是来自整个磁盘的少量传输。
一些方案:
CPU速度始终快于磁盘速度。恕我直言,压缩将增加开销,从而降低性能。
关于OSX,我读过类似昨天的内容,它是对文件系统的压缩-基本上,答案围绕您要压缩的内容-在本例中,他谈论的是“ FAT”数据。文件结构,属性,元数据等在存储在一起时可以进行压缩以节省空间,并且比在各处查找头部来查找每个文件的数据要快,因此可以将其读入cpu ...
无论如何,如果您正在考虑这样的事情,那么值得一读:-p
但是压缩不只是节省磁盘空间。这也是交易CPU周期以降低I / O延迟和带宽的经典示例。在过去的几十年中,CPU性能以比磁盘性能提高快得多的速度获得了更好的性能(并且计算资源更加丰富,稍后再介绍)。现代硬盘的查找时间和旋转延迟仍以毫秒为单位。一毫秒内,一个2 GHz CPU经历了200万个周期。然后,当然,仍然需要考虑实际的数据传输时间。
当然,整个操作系统和硬件的多个缓存级别可能会掩盖这些延迟。但是这些位必须在某个时候从磁盘上移出以填充这些缓存。压缩意味着必须传输的比特更少。考虑到现代多核Mac在正常使用情况下CPU资源的可笑程度过高,从磁盘上传输压缩的有效负载并使用CPU将其内容解压缩到内存所需的总时间通常仍将远远少于该时间。需要以未压缩的形式传输数据。
这说明了传输较少数据可能带来的性能优势,但是使用扩展属性存储文件内容实际上也可以使事情变得更快。这都与数据局部性有关。
如果有一件事使硬盘减速的速度大于传输大量数据的速度,那么它的头就从磁盘的一部分移到了另一部分。每次移动意味着磁头开始移动,停止,然后确保将其正确定位在所需位置上,然后等待旋转磁盘将所需钻头放在其下方的时间。这些都是真实的,物理的,运动的部分,令人惊奇的是它们像他们一样快速有效地进行舞蹈,但是物理有其局限性。这些运动是硬盘等旋转存储的真正性能杀手。
HFS +卷格式将有关文件(元数据)的所有信息存储在磁盘上的两个主要位置:目录文件(存储文件日期,权限,所有权和其他内容)以及属性文件(存储“命名叉”) 。”
HFS +中的扩展属性在属性文件中被实现为命名派生。但是与资源派生的资源叉(可能很大)(不超过文件系统支持的最大文件大小)不同,HFS +中的扩展属性“内联”存储在“属性文件”中。实际上,这意味着每个属性大约限制128个字节。但这也意味着磁盘头不需要去磁盘的另一部分来获取实际数据。
可以想象,构成目录和属性文件的磁盘块经常被访问,因此比大多数磁盘块更可能位于某个地方的高速缓存中。所有这些都有助于使文件的完整存储(包括其数据中的元数据)在B树结构的Catalog和Attributes文件中成为整体性能的胜利。只要它仍然小于常规数据存储的分配块大小,并且只要它全部适合于属性文件中的B树节点,那么即使是膨胀到25个字节的8字节有效载荷也不必担心。无论如何,操作系统必须完整阅读。
Snow Leopard减少了磁盘占用空间(例如,删除了不必要的本地化和“ designable.nib”文件),还有其他重要的贡献,但是HFS +压缩是迄今为止最有趣的技术。
来自:http : //arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/3
Microsoft磁盘压缩太旧了。它的比率几乎无法与80年代的ARJ方法相提并论。但是,即使Microsoft的压缩功能也可以在非常慢的(便携式)硬盘驱动器上提供更好的性能。尤其是如果有足够的RAM用于写缓存并防止过多的写操作。
写过程是任何启用随机访问的压缩方法的弱点。
因此,如果您需要压缩驱动器,则最好改用某种Linux。
磁盘压缩也非常适用于RAM驱动器,无需告诉您原因。
令人怀疑。压缩和解压缩不仅涉及磁盘和CPU,还涉及更多内容。特别是将有大量数据往返于内存(除了不进行压缩的标准传输开销外),这在页面错误方面确实很不利。