我一直听说gzip你的网站是加快交付速度的好方法。我的网站一般有非常大的负载,我还会看看gzip吗?我还读到了使用gzip的缺点,例如解压缩浏览器内容所需的时间。这是真的吗?
更新:
这个问题是基于网站已经相当优化的假设。
实际上我已经对它进行了优化。我网站上的大部分内容都是数据库驱动的,最初需要花费一些时间来加载它,所以我做了什么,我编写了一些每晚运行的脚本,生成内容并将其存储为最重的静态HTML文件被贩运的网页。服务器上的负载低于其容量,所以,谢谢你的洞察力,我现在会认真考虑它。我正在考虑使用一些动态执行它的PHP类。你有什么建议吗?
答案 0 :(得分:12)
压缩您的回复有助于转移时间。这意味着它将减少用户下载生成的页面所需的时间。它(通常)不会减少服务器上的负载。事实上,它可以稍微增加它,因为压缩本身不是免费的(它占用了一些CPU周期)。
通常,用户体验没有任何缺点(仅有优势)。
但是,如果您的服务器已经负载很重,我可能会跳过它,因为它只会添加到该负载(通常)。首先优化代码,然后添加压缩。不要尝试添加压缩作为极差优化代码的创可贴(它不起作用)......
答案 1 :(得分:7)
你应该gzip你的内容,因为:
您还应该阅读雅虎最佳实践中关于gzip的部分。
答案 2 :(得分:1)
我同意@ircmaxell。您应该尝试优化您的应用程序 - 如果数据库优化不佳或有愚蠢的查询,它将不会为您做任何魔术。相反,你不能放松任何东西 - CPU会受到一些额外的负载,但它可能会严重降低你的带宽使用率。由于大多数现代浏览器都支持GZIP压缩,因此服务器只询问客户端是否支持GZIP。更多信息http://httpd.apache.org/docs/2.0/mod/mod_deflate.html
也许您也应该尝试使用@Andrew Sledge建议的一些缓存模块。试试APC :-) http://www.php.net/manual/en/intro.apc.php。还尝试压缩css文件,图像或js文件。我过去常常静态生成整个网页,然后只更新已更改的页面 - 这肯定取决于更新率..
答案 3 :(得分:1)
我知道这是一个旧的堆栈问题,但我想在今天的条款/最佳做法中尝试回答你的问题。
由于您每晚制作静态文件,我建议您查看静态文件zopfli的here's the php lib压缩。特别是因为zopfli压缩比标准gzip压缩大约多5%,并且每次都不需要进行压缩(在生成静态文件时执行一次并以此方式存储)。然后,当支持gzip的用户请求时,您可以提供gziped文件(您不需要通过这种方式进行即时压缩)。对于不支持gzip的用户,您可以在服务器上gunzip(这会减少I / O,因为压缩文件小于解压缩版本,实际上是它的动态解压缩)。
你仍然应该使用动态压缩动态内容(不是zopfli,因为它有更高的时间/成本)。
关于zopfli压缩静态内容的时间成本:只要每天访问超过100次就值得做,因为它比标准gzip需要大约100倍的处理能力。因此,一旦你达到101,你的处理器将正式完成比处理它的动态压缩更少的处理。
答案 4 :(得分:0)
解压缩内容所需的时间与传输时间节省的时间差不多。
将三者结合起来,您可以获得更快的页面加载速度。有关此here
的详细信息