cakeSlow website php (cake php)


cakeSlow website php (cake php)

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

我已经被这个问题困扰了好几个小时。有人能帮我一下吗?

我认为这与cake正在做的事情无关,或者至少不是很重要,因为如果是这样的话,它只会发生在第一个用户身上,而不是所有用户。我加载了你的网站,第一次加载时确实很慢,但之后加载就很好了。

我在chrome上测试,我发现的是,如果我删除cookie(使用编辑此cookie扩展)并尝试再次加载网站,请求很慢。

我用YSlow扩展分析了你的网站,发现了这个(文本取自分析结果)

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

如果你也使用谷歌PageSpeed扩展,你会得到更多关于你的网站有趣的信息。

所以恕我直言,问题更多的是与浏览器相关的问题,而不是服务器(CakePHP)的问题。

希望能有所帮助

检查firebug,虽然你有许多js和图像请求,正如@pollirrata指出的,js加载时间只占加载时间的20%左右,图像另外20%(大致)。这是很多,但正如你所评论的,根url是一个超过一半的加载时间。

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

你能做a吗?

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

,看看在没有视图的额外权重的情况下加载需要多少时间来排除这种情况?