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

发布于 2022-09-05 15:25:13 字数 185 浏览 23 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

宁愿没拥抱 2022-09-12 15:25:13

使用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...

墨落成白 2022-09-12 15:25:13

没有用过类似的扩展,不过可以自己 封装一个类 用来log每个用户的操作记录和执行时间

怀里藏娇 2022-09-12 15:25:13

可以使用tideway+xhgui 非侵入式进行监控分析。连接给你
http://www.gujiawei.cn/2017/0...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文