【问题标题】:Using plugins slows down CakePHP使用插件会降低 CakePHP 的速度
【发布时间】:2010-07-24 11:41:16
【问题描述】:

我在 CakePHP 中使用了 7-8 个插件,网页加载需要 3 到 6 秒。为什么插件会拖慢 CakePHP 的速度? O_O。 我发现它很慢,因为它在插件中加载模型(我全局禁用了 Cake 的缓存) (我用localhost开发网站,Debug level = 2)

使用DebugKit发现组件初始化和启动需要3s->6s,但无法解决问题。


我禁用了所有插件,并且仅在我添加行的模型中

var $acts = array('Search.searchable','Tags.Tagged');(我全局禁用了Cake的缓存,禁用了缓存检查和Cache.disable = true)

时间负载从 1s 变化 -> 4s 仅具有 1 行负载插件中的行为 2 核心团队 cakePHP 的插件代码我认为插件无关紧要。

【问题讨论】:

  • 插件可能写得不好,对我来说这不取决于插件的数量
  • 你没有提供太多关于你的问题的信息,我用 20 多个插件编写了应用程序,它们的加载时间低于 2 秒。

标签: cakephp plugins


【解决方案1】:

您可以拥有数百个不执行任何操作的插件,并且可以立即加载页面。或者你可以只有一个插件做很多事情,或者做的很差,并且页面加载超时。这真的不是数量,而是每个插件在做什么。

因此,您要么需要对您的应用进行低级别分析(例如http://www.xdebug.org/docs/profiler),要么需要逐个关闭插件以查看哪个是罪魁祸首。

【讨论】:

  • 我禁用了所有插件,并且仅在模型中我添加了 var $acts = array('Search.searchable','Tags.Tagged');时间负载从 1 秒变化 -> 4 秒,只有 1 行负载插件中的行为
  • @meotim 通过添加“仅一行”,您会导致在添加的行为中执行数十、数百甚至数千行代码。再说一遍:数量并不重要,重要的是这些插件做了什么!显然Search.searchable 和/或Tags.Tagged 很简单做很多事情。我也不知道(而且你还没有具体说明它们是什么插件),所以我无法评论它们。
  • 我使用 cakeDC 的插件和我的插件。我确定它没有做很多事情,但我的插件和 cakeDC 一起导致缓慢。我在 plugins.model .ex 中的 bindModel 时测试它很慢:
  • @meotim 好的,看来您已经将问题的原因缩小到两者之间可能存在的一些相互作用。现在你只需要弄清楚为什么两者加起来很慢。
  • ex: if in Behavior setup: ex: $Model->bindModel(array('hasAndBelongsToMany' => array( 'Tag' => array( 'className' =>'Tags.Tagged' ) )); 它甚至只有一个 $acts = array('Search.serachable'); 如果一个比它慢。
猜你喜欢
  • 2022-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 1970-01-01
  • 2012-10-24
  • 2017-03-25
  • 2022-09-25
相关资源
最近更新 更多