打造xhprof调试环境
2016-12-03 21:12
411 查看
XHProf是一个分层PHP性能分析工具. 其扩展只有4个函数, 常用的只有两个,见php手册. 使用起来并不复杂, 但返回的报告数据是一个大数组, 阅读很不方便, 所以还需要一个优化显示的工具, 例如xhprof的pecl包. php扩展和pecl的安装这里不详细讲解, 网上有很多教程. 下面介绍一个比较酸爽的配置方式 —- 不修改项目代码,以入侵的方式实现get参数控制任意url请求是否开启xhprof分析.
下载pecl的php代码解压后, 保存在
编辑文件
你也可以建在其它地方或使用其它文件名. 关键是要在php.ini里面增加一下配置
若你的环境已经配置有auto_prepend_file, 可以把以上代码加入到原文件的后面. 配置好之后记得重启fpm让配置生效.
使用方法: 在url后面增加get参数xhprof, 如
至此环境里的所有php的web服务, 都不用修改修改代码, 可以方便快捷的开启xhprof分析了, 这个姿势是不是很酸爽呢? 若是的话,记得顶一下哦
下载pecl的php代码解压后, 保存在
/www/xhprof.xxx.com/, 以此目录为根目录, 配置一个web服务, 使用http://xhprof.xxx.com访问. 专门用于查看xhprof报告.
编辑文件
/usr/local/php/lib/auto_prepend_file.php写入一下代码:
//根据参数控制是否开启xhprof //@link http://blog.csdn.net/tsxw24/article/details/53447673 if (!empty($_GET['xhprof'])) { //开启xhprof xhprof_enable(XHPROF_FLAGS_MEMORY | XHPROF_FLAGS_CPU); //在程序结束后收集数据 register_shutdown_function(function() { //保存xhprof数据 if (function_exists("xhprof_disable")) { $xhprof_data = xhprof_disable(); define("DEBUG_LIB", "/www/xhprof.xxx.com/xhprof_lib"); include_once DEBUG_LIB . "/utils/xhprof_lib.php"; include_once DEBUG_LIB . "/utils/xhprof_runs.php"; $xhprof_runs = new XHProfRuns_Default(); $uri = $_GET['xhprof'].'-'.$_SERVER['HTTP_HOST'].$_SERVER['PATH_INFO']; $uri = str_replace(['/', '.', '\\', '|'], '_', $uri); $xhprof_runs->save_run($xhprof_data, $uri); } }); }
你也可以建在其它地方或使用其它文件名. 关键是要在php.ini里面增加一下配置
auto_prepend_file = "/usr/local/php/lib/auto_prepend_file.php"
若你的环境已经配置有auto_prepend_file, 可以把以上代码加入到原文件的后面. 配置好之后记得重启fpm让配置生效.
使用方法: 在url后面增加get参数xhprof, 如
http://xxx.com?xhprof=five, 即可对这次访问启用xhprof分析, 并按指定的名称five生成报告文件, 用前面配置的环境
http://xhprof.xxx.com可以查看.
至此环境里的所有php的web服务, 都不用修改修改代码, 可以方便快捷的开启xhprof分析了, 这个姿势是不是很酸爽呢? 若是的话,记得顶一下哦
相关文章推荐
- 【转载】在Windows环境下用Editplus打造一个Python编辑调试环境
- 学习NodeJS第三天:打造Nodejs的调试环境(上)
- Windows下用Editplus打造一个Python调试环境 - 转
- 打造最舒适的 webview 调试环境
- 学习NodeJS第三天:打造Nodejs的调试环境(中)
- elipse打造Nodejs的调试环境
- 学习NodeJS第三天:打造Nodejs的调试环境(下)
- 打造最舒适的webview调试环境
- Windows下用Editplus打造一个Python调试环境
- 学习NodeJS第三天:打造Nodejs的调试环境(下)
- 打造最舒适的webview调试环境
- 学习NodeJS第三天:打造Nodejs的调试环境(上)
- atom 打造轻量级C编辑 调试环境 使用clang
- 最便捷地打造Web开发调试环境
- Windows下用Editplus打造一个Python调试环境
- 打造最舒适的 webview 调试环境
- 打造最舒适的 webview 调试环境
- 学习NodeJS第三天:打造Nodejs的调试环境(下)
- winXP home edition下asp与php调试环境的建立
- 【转载】kgdb调试环境的建立