QCacheGrind Windows 版需从 SourceForge 手动下载 kcachegrind-0.9.1-win32.zip,解压即用;Xdebug 3 配置须设 xdebug.mode=profile、output_name="cachegrind.out.%t.%s";路径不匹配导致源码打不开,需通过环境变量或 Settings→Configure Paths 映射;Call Graph 导出依赖 Graphviz,安装后需重启 QCacheGrind 并验证 dot -V。

直接下载 QCacheGrind Windows 版本
QCacheGrind 官方不提供 Windows 原生安装包,但它的 Windows 二进制文件长期托管在 KCacheGrind 项目的 SourceForge 页面。最新稳定版(v0.9.1)可从以下路径获取:https://sourceforge.net/projects/kcachegrind/files/kcachegrind-win32/。注意:不要点“Latest”跳转,那个链接常指向旧版或 404;手动进入目录选 kcachegrind-0.9.1-win32.zip 下载解压即可。
解压后双击 qcachegrind.exe 启动,无需安装、不写注册表、不依赖 VC 运行库(静态链接),适合即开即用。
常见误区:
- 搜 “QCacheGrind 官网下载” 会跳到 kcachegrind.sourceforge.net —— 这是正确地址,不是镜像或第三方
- GitHub 上的
QCacheGrind仓库(如 qcache-grind/qcachegrind)是镜像或废弃分支,不更新、无 Windows 构建 - 别下
WinCacheGrind—— 它已停止维护(最后更新 2014 年),不支持 Xdebug 3,默认无法识别cachegrind.out.%t.%p格式
Xdebug 3 配置必须匹配 QCacheGrind 解析规则
QCacheGrind 能打开文件,不代表能正确解析调用关系和源码定位。关键在 xdebug.profiler_output_name 和路径配置。
推荐配置(加到 php.ini 或独立的 ext-xdebug.ini 中):
[xdebug] zend_extension=xdebug.so xdebug.mode=profile xdebug.start_with_request=trigger xdebug.output_dir="D:\tmp\xdebug" xdebug.output_name="cachegrind.out.%t.%s"
说明:
-
xdebug.mode=profile是 Xdebug 3 的新开关方式,xdebug.profiler_enable已废弃 -
xdebug.start_with_request=trigger表示只在带?XDEBUG_PROFILE参数时生成 profile,避免全量日志拖慢服务 -
xdebug.output_name="cachegrind.out.%t.%s"中%t是时间戳(秒级),%s是脚本名哈希 —— 这样生成的文件名唯一、可读、且 QCacheGrind 能自动识别为 PHP 源文件关联目标 -
xdebug.output_dir对应的目录必须真实存在,且 PHP 进程有写权限(IIS 下常需给 IUSR 或 IIS_IUSRS 写入权限)
QCacheGrind 打不开源码?不是 bug,是路径没对齐
点击函数右侧的 Source code 显示 “File not found”,99% 是因为 QCacheGrind 读到的绝对路径(比如 /var/www/html/index.php)和你本地文件路径(比如 D:\project\index.php)不一致。
解决方法只有两个,且必须选其一:
- 启动 QCacheGrind 前,先用环境变量覆盖路径:
set QCACHEGRIND_SOURCE_PATH=D:\project,再运行qcachegrind.exe(Windows CMD) - 在 QCacheGrind 界面中点击 Settings → Configure Paths…,添加一条映射:
/var/www/html → D:\project—— 注意斜杠方向、结尾不加反斜杠、左边是 profile 文件里记录的路径,右边是你本地实际路径
补充:Xdebug 3 默认记录的是容器或服务器上的绝对路径。如果你用的是 phpstudy、laragon、xampp 等集成环境,路径通常形如 C:\phpStudy\WWW\,那就把左边填成 C:/phpStudy/WWW(QCacheGrind 内部用正斜杠解析)。
Call Graph 导出图片失败?检查 Graphviz 是否可用
QCacheGrind 的 Call Graph 标签页右键 → Export Image 报错,基本等于 Graphviz 的 dot 命令没找到或版本太低。
Windows 下最简方案:
- 去
https://graphviz.org/download/下载graphviz-xx-win64.msi(选最新稳定版,如 12.0.0) - 安装时勾选 “Add Graphviz to the system PATH for all users”
- 重启 QCacheGrind(不是 CMD,是 GUI 程序本身)
验证是否生效:CMD 中执行 dot -V 应输出版本号;QCacheGrind 的 Help → About 里会显示 “Graphviz: available”。如果仍失败,说明 QCacheGrind 启动时没读到 PATH —— 直接改快捷方式目标为:"C:\path\to\qcachegrind.exe" --dot="C:\Program Files\Graphviz\bin\dot.exe"。
真正容易被忽略的点:QCacheGrind 不会实时检测 Graphviz 变更,每次更新 Graphviz 后都得彻底关闭再重开程序,否则 Export Image 依然灰掉。


















