0

几年前,我从头开始创建了我的第一个 PHP 页面(新闻站点)。我正在考虑重做它并开始重新设计,但我的页面速度遇到了问题,所以有几个问题:

  1. 我可以使用什么工具来确定 PHP 的瓶颈在哪里?
  2. 尽管页面是动态的,但它每隔几个小时才会更改一次。什么是最好的简单工具(我确实有一个 VPS,但它上面有多个站点)可能会加快这个过程?
4

2 回答 2

0

您可以使用 memcache 进行基于时间的内存存储。
使用 Explain 语句来确定您的 mysql 查询的效率。
如果页面上有大量图像,您可以使用延迟加载技术和
精灵技术。
在 body 标记的末尾包含您的 javascript 文件。
有关更多信息,请查看此链接
http://developer.yahoo.com/performance/rules.html
谢谢

于 2012-09-02T11:08:37.867 回答
0

我生活的规则有点;

  1. 如果您有大量 javascript,请将它们合并为一个大的。减轻服务器压力,释放客户端空闲请求,为实际有效负载提供图像等。
  2. 如果您有大量样式表,请合并非嗅探依赖(media="all" 而不是 'if lte IE7' 等)。与上述相同的好处。这种技术还降低了 gzip 的开销
  3. 当您有密集的 mysql 查询时,生成 HTML - 将 .html 文件堆叠在服务器目录中。简单地include 'cache/pageid.html';或类似地使用它们。将输出缓冲区放入内存是对内存的巨大消耗。
  4. 减少图像的数量 - 以及所有可能合并到工作表中的东西(通常在 CSS 中),这样做。
  5. 具体来说,尝试创建一个“static.mydomain.tld”。这应该是一个没有 cookie 的域,带有一个简单的 http-cache-directive;过期。这可能会给您留下 < 120 字节的 pr-request-header,而不是 > 1k。

我的第 4 项确实不需要太多工具来实现该目标。我只是创建了一个类似于

  function writePageContents($cachefile) {
    $maxage = time() - 60*60; // one hour
    if($maxage < filemtime($cachefile)) return file_get_contents($cachefile);
    else return createPageFromDb();
  }

因此,制作一个包含所有可缓存脚本和样式表的精简标题,从“cdn”提供它们。将所有的元数据放在右关闭标题下,然后flush().

然后考虑是否需要重新创建缓存 - 如果不需要,只需包含磁盘中的本地存储

于 2012-09-02T11:32:49.807 回答