Php Drupal模块在特定页面上自动调用函数,我如何找到停止该调用的代码?
我正在尝试加速运行多个模块的Drupal6站点 我查看了特定页面上的查询,发现该站点正在运行一些不需要在某些页面上运行的查询 仔细观察,似乎有些模块包含的代码基本上是“当有人访问X页时,运行此查询以便显示其结果。” 问题是,这个站点没有使用这些数据,所以我想停止查询的运行 然而,我对Drupal的钩子和菜单系统了解不够,无法精确定位导致这些查询运行的代码行,以便消除它们Php Drupal模块在特定页面上自动调用函数,我如何找到停止该调用的代码?,php,performance,drupal,drupal-6,Php,Performance,Drupal,Drupal 6,我正在尝试加速运行多个模块的Drupal6站点 我查看了特定页面上的查询,发现该站点正在运行一些不需要在某些页面上运行的查询 仔细观察,似乎有些模块包含的代码基本上是“当有人访问X页时,运行此查询以便显示其结果。” 问题是,这个站点没有使用这些数据,所以我想停止查询的运行 然而,我对Drupal的钩子和菜单系统了解不够,无法精确定位导致这些查询运行的代码行,以便消除它们 有人知道我应该寻找什么吗?在您开始尝试提高性能之前,您确实需要找到性能受到影响的地方 你需要找到花费的时间最多/收获最多的地方
有人知道我应该寻找什么吗?在您开始尝试提高性能之前,您确实需要找到性能受到影响的地方
你需要找到花费的时间最多/收获最多的地方。禁用某些页面不需要的随机查询可能需要花费大量时间,而不会获得任何明显的结果。如果不使用这些模块,并且调用这些查询的模块不是drupal核心函数的一部分,请禁用它们 通常,您可以使用hook\u alter更改其他模块挂钩。请看这里: 您还可以尝试搜索特定权限集以执行这些查询,并删除不需要它们的角色的权限
否则,我不确定您是否可以在不改变核心()的情况下轻松禁用查询。您将无法真正做到这一点。每页上都会发生很多事情,因为没有自动加载程序只加载每页所需的代码。这就是为什么Drupal的钩子系统如此强大,任何模块都可以在任何时候调用Drupal的任何部分并进行交互。如果你想这样看,这也是一个缺陷。但这是一种折衷,使Drupal如此灵活
如果你想加快网站的速度,试着转到性能,并聚合CSS/JS和页面压缩。您可能还需要添加Boost模块,以提供静态HTML页面。还有其他模块,如memcache、AuthCache和CacheRouter。这是您想要研究的内容,而不是黑客核心。我有3个页面,获得了大约50%的点击率。我想通过删除所有这些没有显示给最终用户的奇怪查询,我可以将它们的加载时间缩短一半。@b知识如果你在同一个3页上得到那么多点击,你应该使用缓存。与Drupal配合良好的反向代理(如Varnish)可以很容易地做到这一点,否则您可能需要一些自定义缓存处理,这也可以减少您实际需要的查询数量,并且可能需要更少的工作。