xdebug - 有没有一种工具可以分析PHP用户定义函数调用开销

查看:108
本文介绍了xdebug - 有没有一种工具可以分析PHP用户定义函数调用开销的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如题:在遇到网页加载慢,或502 timeout时。
如果想知道哪里执行慢了,原始做法是手动插入一些时间点。在调用前后打印时间。
测试环境还好,随便搞。但线上环境就不一样了。
所以有没有一种工具可以部署到线上环境,然后在需要的时候,分析出PHP的函数,或代码块执行效率。
大名的xdebug可否??
没用过,大神们推荐指导下?

解决方案

使用xdebug扩展。
关键配置文件

[xdebug]
;基本调试配置
xdebug.auto_trace = on
xdebug.collect_params = on
xdebug.collect_return = on
xdebug.profiler_enable = on
xdebug.profiler_output_dir ="/php/ext/xdebug_profilers"
xdebug.trace_output_dir = "/tmp/ext/xdebug_traces"
;远程调试设置
xdebug.remote_enable = on
xdebug.remote_host = localhost
xdebug.remote_port = 9010
xdebug.remote_autostart = on
 
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so

扩展目录自己改一下

然后重新web服务。
访问PHP脚本。此时在用户主目录下会有cachegrind.out.xxx的分析文件:
该文件的内容不是很直观,所以需要使用可视化的工具来查看和分析,而Xdebug本身就支持使用第三方的可视化profiler文件的内容。在Linux下,可以使用KCacheGrind,而在Windows平台,可以使用QCacheGrind,当然还有一些在线的由爱好者开发的工具,例如:WebGrind,具体怎样使用这些工具,可以参考:
https://xdebug.org/docs/profiler
下面罗列下,WebGrind的效果:

WebGrind可以在这里下载:
https://github.com/jokkedk/we...

这篇关于xdebug - 有没有一种工具可以分析PHP用户定义函数调用开销的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆