首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gzip对minify

Gzip对minify
EN

Stack Overflow用户
提问于 2009-04-30 14:13:38
回答 13查看 36.5K关注 0票数 136

前几天,我就缩小Javascript和CSS与更喜欢使用Gzip的人进行了一次比较活跃的讨论。

我会给这个人打电话。

X说Gzip可以缩小代码,因为它会压缩你的文件。

我不同意。Zip是一种缩小文件大小的无损方法。无损意味着必须完美地恢复原始信息,这意味着信息必须被存储,以便能够恢复空间、不需要的字符、注释代码和其他所有内容。这占用了更多的空间,因为必须压缩更多的空间。

我没有测试方法,但我相信这个代码的Gzip:

代码语言:javascript
复制
.a1 {
    background-color:#FFFFFF;
    padding: 40px 40px 40px 40px;
}

仍将大于此代码的Gzip:

代码语言:javascript
复制
.a1{body:background-color:#FFF;padding:40px}

有没有人能证明这是对的还是错的。

请不要来说“这是对的,因为这是我一直使用的”。

我在这里要求科学证据。

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2009-04-30 14:20:25

很简单的测试。我拿了你的js,把它们放进不同的文件里,然后在上面运行gzip -9。结果是这样的。这是在运行Cygwin和gzip 1.3.12的WinXP机器上完成的。

代码语言:javascript
复制
-rwx------  1 xxxxxxxx mkgroup-l-d     88 Apr 30 09:17 expanded.js.gz

-rwx------  1 xxxxxxxx mkgroup-l-d     81 Apr 30 09:18 minified.js.gz

下面是使用一个真实的JS示例进行的进一步测试。源文件为"common.js“,原始文件大小为73134字节。缩小到26232字节。

原始文件:

代码语言:javascript
复制
-rwxrwxrwx 1 xxxxxxxx mkgroup-l-d 73134 Apr 13 11:41 common.js

缩小文件:

代码语言:javascript
复制
-rwxr-xr-x 1 xxxxxxxx mkgroup-l-d 26232 Apr 30 10:39 common-min.js

使用-9选项(与上面相同的版本)压缩的原始文件:

代码语言:javascript
复制
-rwxrwxrwx 1 xxxxxxxx mkgroup-l-d 12402 Apr 13 11:41 common.js.gz

使用-9选项(与上面相同的版本)压缩的文件:

代码语言:javascript
复制
-rwxr-xr-x 1 xxxxxxxx mkgroup-l-d  5608 Apr 30 10:39 common-min.js.gz

正如你所看到的,不同的方法之间有着明确的区别。最好的办法是同时缩小和压缩它们。

票数 199
EN

Stack Overflow用户

发布于 2009-05-17 11:55:29

这是一个测试的结果,我做了一段时间前,使用“现实生活”CSS文件从我的网站。CSS优化器用于小型化。Ubuntu附带的标准Linux存档应用程序用于Gzipping。

原件:28,781字节

缩小:22,242个字节

Gzipped:6,969字节

Min+Gzip:5,990字节

我个人的观点是首先支持Gzipping,因为这显然是最大的区别。至于小型化,这取决于你的工作方式。您必须保留原来的CSS文件,以便进一步编辑。如果在每一次改变之后,它都不会让你感到烦恼,那就去做吧。

(注意:还有其他解决方案,例如在为文件服务时通过小型程序“按需”运行它,并将其缓存在文件系统中。)

票数 28
EN

Stack Overflow用户

发布于 2009-04-30 15:05:17

测试时要小心:这两个CSS片段非常小,因此它们不能从GZIP压缩中获益--仅增加GZIP的小页眉和页脚(大约20字节开销)就会失去所取得的成果。在现实中,您将不会有这么小的CSS文件,并关心压缩它。

minify+gzip压缩的不仅仅是gzip

对最初问题的答案是,是的,minify + gzip将获得比gzip更多的压缩。对于任何重要的示例(即超过几百字节的有用JS或CSS代码),这都是正确的。

对于这方面的示例,可用的压缩和解压缩的获取Jquery源代码,使用gzip压缩它们并查看。

值得注意的是,比起优化的CSS,Javascript从小型化中获益更多,但仍然有好处。

推理:

GZIP压缩是无损的。这意味着它必须存储所有文本,包括确切的空格、注释、长变量名称等等,以便以后能够完美地复制它们。另一方面,缩小是有损的。如果您缩小了代码,您将从代码中删除大部分这些信息,从而减少GZIP需要保留的内容。

  • 迷你化抛弃了不必要的空白,只在出于句法原因的情况下才留出空格。
  • 最小化移除注释。
  • 在没有副作用的情况下,代码缩小可以用较短的名称代替标识符名。
  • 代码小型化可能会对代码进行简单的“编译器优化”,而这些优化只有通过实际解析代码才能实现。
  • CSS缩小可以消除冗余规则或合并具有相同选择器的规则。
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/807119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档