我已经在 Google 上搜索了这个问题很长一段时间,但我找不到一篇文章讨论 Joomla 的速度,而不是脚本和图像等外部资源的加载速度。我的 Apache + PHP 设置执行得非常好 - 启用了压缩并且我正在使用本地虚拟机来运行它。问题在于服务器端的 Joomla,我不知道如何追踪它的来源。
我本地 Joomla 设置上的页面总是需要 2 到 3 秒才能加载。根据 Chrome 开发者工具中的Network标签,浏览器等待 HTML 页面大约 2 秒,然后在大约 0.3 秒内加载所有外部资源。每个页面都是这种情况,甚至是管理员页面。这导致非常令人沮丧的页面浏览,因为每次链接点击都会等待很长时间。为了说明,这里是加载速度图的屏幕截图。蓝线是 HTML 页面:
Joomla 的每个请求都需要 2 秒的处理时间是怎么回事?Joomla 就是这么慢,还是我的设置有问题?如果是这样,我该如何调试它?
我试过的
- 我已经创建了一个完全独立于 Joomla 设置的 PHP 页面,并在其中填充
<?php phpinfo(); ?>
以确认所有 PHP 脚本不受 2 秒延迟的影响。他们不是。 - 我编写并执行了一个小的 PHP 脚本,它通过“127.0.0.1”和“localhost”连接到本地 MySQL 服务器,并打印出 Joomla 数据库中的所有表。该脚本仅在几分之一秒内运行,因此在连接到数据库时故障不在于 DNS 问题。
用于加载首页的 Joomla 个人资料信息:
应用 0.000 秒 (+0.000);0.81 MB (+0.807) - 加载后 应用 0.217 秒 (+0.217);2.29 MB (+1.479) - 初始化后 应用 0.296 秒 (+0.079);4.34 MB (+2.055) - afterRoute 应用 0.640 秒 (+0.345);5.59 MB (+1.247) - 发货后 应用 0.705 秒 (+0.065);5.85 MB (+0.266) - beforeRenderModule mod_menu(主菜单) 应用 0.774 秒 (+0.069);5.91 MB (+0.053) - afterRenderModule mod_menu(主菜单) 应用 0.774 秒 (+0.000);5.90 MB (-0.009) - beforeRenderModule mod_menu(所有前端视图) 应用 1.004 秒 (+0.229);6.05 MB (+0.147) - afterRenderModule mod_menu(所有前端视图) 应用 1.004 秒 (+0.000);6.03 MB (-0.016) - beforeRenderModule mod_menu(用户菜单) 应用 1.035 秒 (+0.032);6.05 MB (+0.021) - afterRenderModule mod_menu(用户菜单) 应用 1.036 秒 (+0.000);6.04 MB (-0.010) - beforeRenderModule mod_menu(深度菜单) 应用 1.058 秒 (+0.023);6.06 MB (+0.017) - afterRenderModule mod_menu(深度菜单) 应用 1.059 秒 (+0.000);6.05 MB (-0.010) - beforeRenderModule mod_menu(本网站) 应用 1.092 秒 (+0.034);6.06 MB (+0.014) - afterRenderModule mod_menu(本网站) 应用 1.092 秒 (+0.000);6.05 MB (-0.013) - beforeRenderModule mod_login(登录表单) 应用 1.116 秒 (+0.024);6.07 MB (+0.023) - afterRenderModule mod_login(登录表单) 应用 1.116 秒 (+0.000);6.07 MB (-0.002) - beforeRenderModule mod_breadcrumbs (Breadcrumbs) 应用 1.143 秒 (+0.027);6.09 MB (+0.021) - afterRenderModule mod_breadcrumbs (Breadcrumbs) 应用 1.143 秒 (+0.000);6.09 MB (-0.003) - beforeRenderModule mod_menu(顶部) 应用 1.179 秒 (+0.035);6.12 MB (+0.028) - afterRenderModule mod_menu(顶部) 应用 1.179 秒 (+0.000);6.10 MB (-0.012) - beforeRenderModule mod_search (搜索) 应用 1.207 秒 (+0.028);6.13 MB (+0.028) - afterRenderModule mod_search (搜索) 应用 1.236 秒 (+0.029);6.15 MB (+0.014) - 渲染后
请注意,“afterInitialise”、“afterDispatch”和“afterRenderModule mod_menu (All Front End Views)”步骤每个都需要将近三分之一秒。这些点中的每一个运行的时间都比我接受整个脚本运行的时间要长。关于如何减少这些的任何线索?
我希望这个问题足够具体,不会立即关闭。如果我可以做些什么来使其更具体,请发表评论。