启用更多的模块是否会使网站变慢?


13

启用更多的模块是否会使网站变慢?
我已经为我的站点安装了30个模块,但恐怕它会变得太慢。

Answers:


11

启用和启用更多的模块会使Drupal引导速度变慢,因为会加载和解析更多的文件。除此之外,拥有更多启用的模块并不会自动意味着站点速度变慢,因为并非所有模块都为每个请求的页面执行代码。

例如,如果您已经安装了Views并且仅启用了首页视图,则当请求的页面是节点页面时,将不会执行Views。尽管Views模块实现hook_menu_alter(),即使您尚未启用任何视图,该模块仍会执行,但是Views模块已启用。hook_menu_alter()重建菜单时,将调用的任何实现,通常不会在每个页面请求中都发生。


6
拥有许多“无能为力”的模块会使站点变慢。它与挂钩系统的工作方式有关。每次运行挂钩时,Drupal会对安装的每个模块执行一个module_hook调用。所有这些检查可以加起来。在我们的网站上,module_hook被调用了13,000次,耗时168ms。每一点加起来。
mikeytown2 2011年

15

是。但是,30没什么好担心的。当您超过100时,您就会遇到麻烦;)

安装字节码缓存(APC或XCache)以消除包括许多文件在内的大部分速度降低,并确保定期删除未使用的模块(通常每个项目都会收集在开发过程中某个时候未使用的模块)


我看到Commerce Kickstart使用96个contrib模块。
Pere 2013年

安装XCache可使我的页面在一半时间内呈现。谢谢。
cherouvim '16

1

除了对@Bojan Zivanovic和@kiamlaluno的正确回答之外,您还应该关注模块交互。拥有大量模块会增加模块交互不良(例如药物交互)的风险。我要说的是,拥有超过50个模块会很危险,因此您应该尽早检查您是否不在同一任务域中使用多个模块。

作为示例,使用页面,块,视图,面板,包含视图的块,包含视图的块,包含视图的块构成的页面...的想法是获得正常大脑可以理解的内容(如何构成我的不同页面) 。当隐藏并链接了几个复杂的加载行为时,这可能会对性能产生重大影响。另一个示例是为每个内容从多个模块添加多个ACL规则。

如果您担心性能,请在每次添加新模块后始终使用性能分析模块并跟踪差异。有时,带有一些SQL或自定义模板的小钩子将节省您的网站时间。


Drupal是为“正常大脑”制作的吗?:)
pico34

1

在网站建设过程中要记住的三件事可以加快您的Drupal网站的工作:

  1. 减少模块数量
  2. 检查您的mySQL查询日志中慢速查询和调整代码/根据需要添加索引。
  3. 缓存(并希望大多数用户未通过身份验证)

并且关于模块部分,显然,模块数量越多,速度就越慢,因为它们需要更大的RAM来处理。

仍然有30到60个模块不会对您的网站造成太大影响。

站点加载时间和模块数量的比例大约是100个模块。它将站点延迟350ms至650ms。

希望您下一个站点,您会记住这些观点.. :)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.