使用 Xdebug 进行性能分析
除了 交互式调试外,IDE 与 Xdebug的集成还支持性能分析。 PhpStorm 提供 Xdebug 生成的分析快照的可视化表示,帮助您检查 PHP 应用程序如何使用执行时间和内存。
设置 Xdebug 性能分析
设置 Xdebug
下载并安装 Xdebug 工具。
在 php.ini 中配置 Xdebug 性能分析器
在编辑器中打开活动的 php.ini 文件:
在 设置 对话框(Ctrl+Alt+S )中,单击 PHP。
在打开的 PHP 页面上,单击
,位于 CLI 解释器 字段旁边。
在打开的 CLI 解释器 对话框中, 配置文件 只读字段显示活动 php.ini 文件的路径。 点击 在编辑器中打开。
通过以下方式之一启用 Xdebug 性能分析器模式:
要永久启用性能分析器,请将
xdebug.mode(适用于 Xdebug 3)或xdebug.profiler_enable(适用于 Xdebug 2)设置为profile:xdebug.mode = profilexdebug.profiler_enable = 1要通过使用 XDEBUG_PROFILE Cookie 或 GET/POST 参数从浏览器触发性能分析器,请根据所使用的 Xdebug 版本设置以下设置:
xdebug.mode = profile xdebug.start_with_request = triggerxdebug.profiler_enable = 0 xdebug.profiler_enable_trigger = 1
指定存储性能分析快照的位置:
添加
xdebug.output_dir(Xdebug 3)或xdebug.profiler_output_dir(Xdebug 2)设置,并将目录路径指定为其值。xdebug.output_dir = <path to output folder>xdebug.profiler_output_dir = <path to output folder>添加
xdebug.profiler_output_name设置,并将存储快照的文件名指定为其值。默认值为
cachegrind.out.%p,其中%p是名称格式说明符。 使用默认值或根据 支持的格式说明符定义自定义文件格式。 请注意,名称应始终为 cachegrind.out 。xdebug.profiler_output_name = cachegrind.out.%p
配置从浏览器切换性能分析器
要从浏览器启用性能分析器,请执行以下任一操作:
使用
XDEBUG_PROFILECookie 变量或?XDEBUG_PROFILE=1URL 参数,如 Xdebug 文档中所述。使用 Xdebug Helper 浏览器扩展(例如,适用于 Chrome 的 JetBrains 的 Xdebug Helper)。

启动 Xdebug 调试会话以收集性能分析数据
请执行以下操作之一:
要开始调试整个应用程序,请创建类型为 PHP 网页 的调试配置,并通过单击
启动调试。
有关更多信息,请参见 使用 PHP 网页调试配置进行调试。
要调试特定的 PHP HTTP 请求,请定义类型为 PHP HTTP 请求 的调试配置,并通过单击
启动调试。
有关更多信息,请参见 调试 PHP HTTP 请求。
要启动零配置调试会话:
切换 PhpStorm 工具栏或状态栏上的 开始监听 PHP 调试连接 按钮
,使其更改为
。 之后,PhpStorm 开始监听当前项目中使用的调试引擎的端口。 调试端口在 PhpStorm 的 PHP | Debug 页面上的 设置 对话框(Ctrl+Alt+S )中设置。
在浏览器中打开应用程序的起始页面,选择 启动调试器 书签以从浏览器激活调试引擎,重新加载当前页面(应用程序的起始页面),然后返回到 PhpStorm。
分析 PHP CLI 脚本
您可以在 PhpStorm 中为 PHP CLI 脚本生成性能分析快照,而无需 在 php.ini 中将 Xdebug 设置为性能分析模式和 启动 Xdebug 调试会话。
要为 PHP 脚本生成性能分析快照:
为 PHP 脚本文件创建自定义运行配置,并在其中指定以下 解释器选项:
-dxdebug.mode=profile -dxdebug.start_with_request=yes -dxdebug.output_dir=/Users/{username}/{path-to-project-directory} -dxdebug.profiler_output_name=cachegrind.out.%p
通过从 运行/调试配置 对话框中单击 运行 或使用您首选的 运行应用程序配置方式启动创建的运行配置。
每次启动此类运行配置时,PhpStorm 会生成
cachegrind.out.%p性能分析快照,并将其存储在指定的输出文件夹中。
分析 Xdebug 性能分析数据
检索由性能分析器累积的数据
在主菜单中,进入 .
在打开的 选择 Xdebug 分析器快照 对话框中,选择存储性能分析数据的 文件夹和文件。
PhpStorm 在单独的编辑器选项卡中以所选性能分析器输出文件的名称呈现收集的性能分析数据。

您可以一次选择并打开多个快照。 在这种情况下,PhpStorm 会汇总所有选定快照的性能分析数据,并在单个选项卡中显示平均结果。
检查性能分析数据
在选项卡之间切换以分析性能分析数据。 要快速在选项卡中找到特定函数,请使用 快速搜索。
执行统计 :使用此选项卡检查每个被调用函数的 执行指标的摘要信息。
调用树 :使用此选项卡探索所有被调用函数的执行路径。
被调用方 :使用此选项卡探索在 调用树 选项卡中选择的特定函数的执行路径。
调用方 :使用此选项卡探索可能导致调用 调用树 选项卡中选择的特定函数的所有路径。
指标名称 | 描述 |
|---|---|
时间 | 在选定函数及其调用的所有函数中花费的时间(以百分比表示)。 |
自身时间 | 在选定函数中花费的时间(以百分比表示),不包括调用的函数中花费的时间。 |
内存(B) | 选定函数及其调用的所有函数消耗的内存量(以字节为单位)。 |
自身内存(B) | 选定函数消耗的内存量(以字节为单位),不包括调用的函数消耗的内存量。 |
调用 | 选定函数被调用的次数。 |