慢网站php(蛋糕php)

时间:2013-04-08 16:55:40

标签: php cakephp

我已经使用了cakephp一段时间了,最​​近我做了一次更新,这使得网站只在第一次加载时非常慢。我一直在使用不同的工具来弄清楚导致这种情况的原因,但仍然没有任何线索。

我已经坚持了几个小时。有人可以帮我这个!

2 个答案:

答案 0 :(得分:4)

恕我直言,它与蛋糕正在做什么无关,或者至少没有什么可做的,因为如果是这种情况,它只会发生在第一个用户而不是全部。我加载了你的网站,第一次加载它的速度很慢,但之后加载就好了。

我正在测试chrome,而我发现的是,如果我删除了Cookie(使用编辑此Cookie扩展程序)并尝试再次加载该网站,则请求很慢。

我使用YSlow扩展分析了您的网站并发现了这一点(文本来自分析结果)

  • 使用无Cookie域名F级。有22个组件不是无cookie的。当浏览器请求静态图像并发送带有请求的cookie时,服务器会忽略cookie。这些cookie是不必要的网络流量。要解决此问题,请确保通过创建子域并将其托管在那里,通过无cookie请求请求静态组件。
  • 等级F更少发出HTTP请求。此页面有12个外部Javascript脚本。尝试将它们合二为一。此页面有11个外部背景图像。尝试将它们与CSS sprites结合使用。减少页面上的组件数量可减少呈现页面所需的HTTP请求数,从而加快页面加载速度。减少组件数量的一些方法包括:组合文件,将多个脚本组合成一个脚本,将多个CSS文件合并到一个样式表中,并使用CSS Sprites和图像映射。
  • 使用内容分发网络(CDN)F级。 CDN上没有42个静态组件。用户接近Web服务器会影响响应时间。跨多个地理位置分散的服务器部署内容有助于用户感知页面加载速度更快。
  • 添加过期标题上的等级F 。有36个静态组件没有远期到期日期。随着更多脚本,样式表,图像和Flash,网页变得越来越复杂。首次访问页面可能需要多个HTTP请求才能加载所有组件。通过使用Expires头,这些组件变为可缓存,从而避免了后续页面视图上不必要的HTTP请求。 Expires头文件通常与图像相关联,但它们可以并且应该在所有页面组件上使用,包括脚本,样式表和Flash。

如果您还使用Google PageSpeed扩展程序,您将获得有关您网站的更多有趣信息。

恕我直言,问题与浏览器相关的问题比服务器(CakePHP)问题更多。

希望这有帮助

答案 1 :(得分:1)

使用firebug进行检查,尽管你有很多js和图像请求,正如@pollirrata指出的那样,js加载时间仅占加载时间的20%左右,而图像再加上20%(粗略)。这是很多,但正如你评论的那样,根网址是加载时间超过一半的根网址。

我知道这应该继续发表评论,但我还不能这样做:你做了什么样的更新?我猜它是在主控制器的主要动作中。你在那里检索了很多信息吗? Cake可能是第一次缓存结果查询,这就是为什么第二次加载需要的时间更少。您是否在查询中使用可包含的行为(我猜是有查询...)?

你能做一个:

$this->autoRender = false;
pr($info);   //that is, dump every variable with info you have here

并查看在没有视图额外重量的情况下加载需要多长时间才能排除它?