XHProf / PHP

看清每个请求慢在哪个函数

采集函数级耗时与内存,存进 Redis,打开浏览器就能看火焰图。

小火苗,xhprof 的项目宠物

请求进来,报告自己长出来

入口类在请求开始前判断路径,命中报告页或静态资源就直接接管;业务请求由 xhprof 扩展记录函数级耗时与内存。

Core 只通过五个契约访问框架,十二种接入方式各自提供适配器,采样数据统一写入 Redis,报告页从同一份存储渲染。

  • 十二种框架统一接入
  • 火焰图与诊断结论
  • token、Basic 与白名单
12框架适配
13页面语言
v3.10.0当前版本
小火苗 的 微笑 表情

焰焰

浅灰圆底上的一只橙红色小火苗,火尖微倾、分叉,带笑脸与腮红。

火苗一窜,慢函数就现形。

从采样到定位瓶颈

报告页、对比、导出与鉴权都在包内完成。

请求级采样

入口类接管请求,采样窗口覆盖业务逻辑,finally 中停止并落库。

服务端火焰图

按耗时、CPU 或内存渲染火焰图,点函数可下钻查看调用。

两次运行对比

勾选恰好两条记录,按时间先后比较改善与回归。

六条诊断规则

自动列出自身耗时、调用次数、递归与内存集中的可疑函数。

报告页鉴权

auth_token、HTTP Basic、IP 白名单与可信代理多重限制。

导出与通知

JSON / CSV 导出三种视图,慢请求可 POST 到 webhook。

采样能力逐步补齐

版本与日期取自 CHANGELOG 与 git 标签。

v3.10.0

宠物形态接入 Mascot API

Mascot::forms() 列出宠物与 12 种表情,报告页同时修复非法 assets_url 与空指标运行。

v3.9.0

CLI 与队列采样入口

xhprof:profile 自动注册,Laravel 队列四个事件按消息开停,覆盖没有 HTTP 请求的入口。

v3.8.0

采样、鉴权与导出扩展

新增触发采样、Basic 鉴权、IP 白名单、每分钟预算、慢请求 webhook 与 JSON/CSV 导出。

v3.7.0

宠物图标与运行对比

报告页换成小火苗图标,新增两次运行对比入口与按比例采样。

版本日志

最近的发布记录,完整列表在 GitHub Releases。

最新 v3.10.0 全部版本
v3.10.02026-10-19

宠物形态接入 Mascot API,修复 assets_url 与空指标运行。

v3.9.02026-10-04

CLI 与队列采样入口,报告页导出、对比与火焰图图例扩展。

v3.8.02026-10-04

触发采样、Basic 鉴权、IP 白名单、预算、webhook 与火焰图。

v3.7.02026-10-03

小火苗宠物图标、两次运行对比与按比例采样。

v3.6.02026-09-29

新增第 12 家兼容框架 Yii2。

v3.5.02026-09-25

新增第 11 家兼容:原生 PHP 无框架应用。

安装与使用

先安装,再挂上中间件看第一份报告。

PHP >= 8.0 / xhprof + Redis完整 README
安装
composer require aaron-dev/xhprof-webman
最小示例
// config/middleware.php
use ErikWang2013\Xhprof\Webman\XhprofMiddleware;

return [
    '' => [
        XhprofMiddleware::class,
    ],
];

// 产生一次请求后访问 /xhprof 查看报告

焰焰的十二种表情

鼠标停一停,它会换一种心情。

搜索本站

输入关键词,例如“上传”“迁移”“JWT”。