Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal模块在特定页面上自动调用函数,我如何找到停止该调用的代码?_Php_Performance_Drupal_Drupal 6 - Fatal编程技术网

Php Drupal模块在特定页面上自动调用函数,我如何找到停止该调用的代码?

Php Drupal模块在特定页面上自动调用函数,我如何找到停止该调用的代码?,php,performance,drupal,drupal-6,Php,Performance,Drupal,Drupal 6,我正在尝试加速运行多个模块的Drupal6站点 我查看了特定页面上的查询,发现该站点正在运行一些不需要在某些页面上运行的查询 仔细观察,似乎有些模块包含的代码基本上是“当有人访问X页时,运行此查询以便显示其结果。” 问题是,这个站点没有使用这些数据,所以我想停止查询的运行 然而,我对Drupal的钩子和菜单系统了解不够,无法精确定位导致这些查询运行的代码行,以便消除它们 有人知道我应该寻找什么吗?在您开始尝试提高性能之前,您确实需要找到性能受到影响的地方 你需要找到花费的时间最多/收获最多的地方

我正在尝试加速运行多个模块的Drupal6站点

我查看了特定页面上的查询,发现该站点正在运行一些不需要在某些页面上运行的查询

仔细观察,似乎有些模块包含的代码基本上是“当有人访问X页时,运行此查询以便显示其结果。”

问题是,这个站点没有使用这些数据,所以我想停止查询的运行

然而,我对Drupal的钩子和菜单系统了解不够,无法精确定位导致这些查询运行的代码行,以便消除它们


有人知道我应该寻找什么吗?

在您开始尝试提高性能之前,您确实需要找到性能受到影响的地方


你需要找到花费的时间最多/收获最多的地方。禁用某些页面不需要的随机查询可能需要花费大量时间,而不会获得任何明显的结果。

如果不使用这些模块,并且调用这些查询的模块不是drupal核心函数的一部分,请禁用它们

通常,您可以使用hook\u alter更改其他模块挂钩。请看这里:

您还可以尝试搜索特定权限集以执行这些查询,并删除不需要它们的角色的权限


否则,我不确定您是否可以在不改变核心()的情况下轻松禁用查询。

您将无法真正做到这一点。每页上都会发生很多事情,因为没有自动加载程序只加载每页所需的代码。这就是为什么Drupal的钩子系统如此强大,任何模块都可以在任何时候调用Drupal的任何部分并进行交互。如果你想这样看,这也是一个缺陷。但这是一种折衷,使Drupal如此灵活


如果你想加快网站的速度,试着转到性能,并聚合CSS/JS和页面压缩。您可能还需要添加Boost模块,以提供静态HTML页面。还有其他模块,如memcache、AuthCache和CacheRouter。这是您想要研究的内容,而不是黑客核心。

我有3个页面,获得了大约50%的点击率。我想通过删除所有这些没有显示给最终用户的奇怪查询,我可以将它们的加载时间缩短一半。@b知识如果你在同一个3页上得到那么多点击,你应该使用缓存。与Drupal配合良好的反向代理(如Varnish)可以很容易地做到这一点,否则您可能需要一些自定义缓存处理,这也可以减少您实际需要的查询数量,并且可能需要更少的工作。