xdebug - 有没有一种工具可以分析PHP用户定义函数调用开销
本文介绍了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屋!
查看全文