gzip或不gzip

时间:2010-10-12 14:39:28

标签: php gzip

我一直听说gzip你的网站是加快交付速度的好方法。我的网站一般有非常大的负载,我还会看看gzip吗?我还读到了使用gzip的缺点,例如解压缩浏览器内容所需的时间。这是真的吗?


更新:

这个问题是基于网站已经相当优化的假设。

实际上我已经对它进行了优化。我网站上的大部分内容都是数据库驱动的,最初需要花费一些时间来加载它,所以我做了什么,我编写了一些每晚运行的脚本,生成内容并将其存储为最重的静态HTML文件被贩运的网页。服务器上的负载低于其容量,所以,谢谢你的洞察力,我现在会认真考虑它。我正在考虑使用一些动态执行它的PHP类。你有什么建议吗?

5 个答案:

答案 0 :(得分:12)

压缩您的回复有助于转移时间。这意味着它将减少用户下载生成的页面所需的时间。它(通常)不会减少服务器上的负载。事实上,它可以稍微增加它,因为压缩本身不是免费的(它占用了一些CPU周期)。

通常,用户体验没有任何缺点(仅有优势)。

但是,如果您的服务器已经负载很重,我可能会跳过它,因为它只会添加到该负载(通常)。首先优化代码,然后添加压缩。不要尝试添加压缩作为极差优化代码的创可贴(它不起作用)......

答案 1 :(得分:7)

你应该gzip你的内容,因为:

  • 非常容易easy
  • 它可以为您节省带宽(可以省钱)。
  • 它会让您的网站更快。你是正确的,解压缩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)

我知道这是一个旧的堆栈问题,但我想在今天的条款/最佳做法中尝试回答你的问题。

由于您每晚制作静态文件,我建议您查看静态文件zopflihere's the php lib压缩。特别是因为zopfli压缩比标准gzip压缩大约多5%,并且每次都不需要进行压缩(在生成静态文件时执行一次并以此方式存储)。然后,当支持gzip的用户请求时,您可以提供gziped文件(您不需要通过这种方式进行即时压缩)。对于不支持gzip的用户,您可以在服务器上gunzip(这会减少I / O,因为压缩文件小于解压缩版本,实际上是它的动态解压缩)。

你仍然应该使用动态压缩动态内容(不是zopfli,因为它有更高的时间/成本)。

关于zopfli压缩静态内容的时间成本:只要每天访问超过100次就值得做,因为它比标准gzip需要大约100倍的处理能力。因此,一旦你达到101,你的处理器将正式完成比处理它的动态压缩更少的处理。

答案 4 :(得分:0)

解压缩内容所需的时间与传输时间节省的时间差不多。

  1. GZip压缩
  2. 缩小javascript,css和html
  3. 通过合并文件来减少请求
  4. 将三者结合起来,您可以获得更快的页面加载速度。有关此here

    的详细信息