三个工具:Magento 的默认分析器、Mirasvit 分析器扩展和 XHProf
Magento 2 有一个内置的分析器,可以帮助分析服务器响应时间。它输出带有代码块和时间细分的跟踪。
让我解释一下这些列:
-
计时器 ID - 在探查器启动函数调用中使用的唯一标识符:
MagentoFrameworkProfiler::start('计时器 ID', $profilerTags)。
Time -使用相同 Timer id 的MagentoFrameworkProfiler::start和MagentoFrameworkProfiler::stop调用之间经过的时间(以秒为单位)。要了解运行的代码,请在代码库中搜索“Profiler::start.timer_id”。您可以使用以下终端查找命令:findvendor -type f -exec grep -iHn --color=always 'Profiler::start.timer_id' {} ;将您感兴趣的标识符替换为timer_id。
Cnt - 指定的代码块运行了多少次。
Avg - Time / Cnt,或运行代码块一次所花费的平均时间。
Emalloc - PHP 运行指定代码块所消耗的内存(以字节为单位)。memory_get_usage()函数调用的输出。
RealMem - 系统为 PHP 进程分配的所有内存,包括未使用的页面。memory_get_usage(true)函数调用的输出。
使用默认分析器优化 TTFB
要启用默认分析器,请打开位于 Magento 根文件夹中的index.php文件。打开后,将以下行放在index.php文件顶部的<?php之后:
$_SERVER['MAGE_PROFILER'] = 'html';
Magento 将在前端页面的底部输出一条跟踪。将html更改为csvfile ,您将在var/log/profiler.csv中找到分析器输出。
使用默认分析器时,您应该注意的列是Time和Cnt。开始识别具有最多 Time 或 Cnt 的计时器 id,然后搜索 Magento 文件以查找这些特定代码块的位置。分析它们,看看是否发现任何未优化的模式。
您必须记住一件重要的事情 - 配置文件条目是嵌套的。这意味着一个条目的时间包括其所有子条目的时间。如果您看到 Timer id 的Time列值较高,那么您需要确定是否是由于其子项所致。
Mirasvit 分析器扩展
下一个要尝试的工具是Mirasvit 的Magento 2 分析器。它可以在 GitHub 上免费获得。
安装很容易。只需在根文件夹中运行以下 SSH 终端命令:
composer require mirasvit/module-profiler
php -f bin/magento module:enable Mirasvit_Profiler
php -f bin/magento setup:upgrade
要启用探查器,请运行以下命令:
php -f bin/magento mirasvit:profiler:enable
现在,重新加载首页,在底部您将看到分析器栏。(在下面的示例中,我使用与上一个示例中使用的相同的客户端站点。)
安装 MGT分析器
1. composer require --dev mgtcommerce/module-mgtdevelopertoolbar
2. 编译
3. store>configuration>MGT-COMMERCE.COM 打开开关
4. 关闭全页缓存,app/etc/env.php and 将 full_page 改成 0