laravel - 有什么开源免费的检测PHP应用性能的东西吗?
大家讲道理
大家讲道理 2017-04-11 10:34:22
[PHP讨论组]

就是可以针对一个PHP应用中一些函数调用和服务调用进行耗时监控等等的东西,我见过别人有一些内部的监控系统都是一个WEB界面访问之后就可以用表格以及像Echarts之类的统计图显示监控结果,请问这种东西是否有免费开源的?
我百度了半天只找到一个ONEAPM是收费的,另外想问问ONEAPM号称不需要改代码就可以监控是什么原理?我看他的操作指南是装了一个扩展,难道是这个扩展在底层hook了php的一些底层调用函数?不知道这玩意儿会不会有后门啊。。。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(7)
黄舟

xhprof早就弃坑停止更新了.
其实xdebug除了是一个调试器debugger,还是一个分析器profiler:

;https://pecl.php.net/package/xdebug
zend_extension= "/path/to/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9001
xdebug.remote_log = "/path/to/xdebug.log"
;可以只开分析器profiler(区别于调试器debugger)
xdebug.profiler_enable = On
xdebug.profiler_output_dir = "/path/to/xdebug"
;http://xdebug.org/docs/all_settings#max_nesting_level
;bench.php: Fatal error: Maximum function nesting level of '256' reached, aborting!
;xdebug.max_nesting_level = 1000000
xdebug.cli_color=1
;内存分析
xdebug.auto_trace = 1
xdebug.trace_output_dir = "/path/to/xdebug"
xdebug.trace_format = 0
xdebug.show_mem_delta = 1
xdebug.collect_params = 4
xdebug.collect_return = 1
;命令行高亮
xdebug.cli_color = 1

xdebug.profiler输出的信息cachegrind.out使用kcachegrind查看也可以看到PHP函数调用关系和耗时.

另外,PHP-FPM也提供了一个slowlog慢日志功能,超过request_slowlog_timeout配置的函数会被记录下来.

php-fpm.conf:
slowlog = /path/to/slow.log
request_slowlog_timeout = 1

当一个请求耗时超过1秒后,就会将对应的PHP调用堆栈信息(文件/函数)完整写入到慢日志中.
slow.log:
[10-Mar-2016 11:07:33]  [pool www] pid 11618
script_filename = /path/to/your.php
[0x00007fdd62f29260] shell_exec() /path/to/your.php:2
高洛峰

题主可以看一下 Xhprof

高洛峰

PHP 性能追踪及分析工具(XHPROF)

黄舟

tideways一个还在维护的xhprof fork。

PHP中文网

Blackfire

大家讲道理

1 wincachebrind+xdebug
2 web应用瓶颈在于数据库

巴扎黑

百度性能测试中心

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号