我了解到,对于动态 gzip css 和 js 文件,最好保留默认级别-1
。
现在我正在提供静态预压缩的 gzip 文件,我想知道是否最好使用更高级别来创建这些文件。
那么级别-9
可以吗?或者我应该使用 4 或 5,因为有些人甚至建议在运行中进行 gzip 压缩?
好吧,这一切都归结为一个问题,即解压一个高度压缩的文件是否与压缩它花费相同的时间。
答案1
对于即时实时压缩,存在一个收益递减的问题;在某种程度上,较小下载量的 CPU 惩罚不会为您和您的用户带来更快下载速度的好处。
也就是说,当需要 20 秒来压缩下载内容时,如果额外压缩 1%,则会减少 2 秒的下载时间,其影响甚至是有害的。
自己计算一下文件,但是这张桌子似乎表明:
对于更高的压缩级别,惩罚大多是一次性的,仅在压缩时产生,因为在最高压缩级别下解压缩 gzip 文件会变得更高效、更快。
对于预压缩文件,尽可能提高压缩率!这样可以节省带宽、下载时间和解压时间。
答案2
已经压缩的文件无法有效地再次压缩,即使它是用低级压缩的。这就是香农所说的。
较低的压缩率并不意味着较低的最终熵,而是较小的编码表,4hat 意味着较低的 CPU 和 RAM 消耗以及较大的生成文件。
很容易确保压缩文件不能进一步缩小。tar
如果 tar 不可用,则应将预压缩文件存档(通过 fe)或以零压缩方式压缩/7z-ed/rared。