1.先phpinfo看看自己的php环境及版本
2.http://pecl.php.net/package/xhprof,这里下载对应的windows版本扩展
3.放在php/ext下面,刷新phpinfo,是不是有了xhprof选项信息了?
4.http://www.graphviz.org/Download_windows.php,下载2.8的graphviz,看报告用的,安装到你指定目录
5.修改php.ini,添加:
[xhprof] xhprof.output_dir=”c:/wamp/xhprof_log”
6.记得把2里面下载的xhprof_html解压安装到你的www目录,比如www\xhprof
配置xhprof目录下的config.php
7.执行 http://localhost/xhprof/examples/sample.php
看看c:/wamp/xhprof_log 目录下有没有日志文件 ?
按照sample提示的查看报表:
http://localhost/xhprof/xhprof_html/index.php?run=生成日志 的编号&source=xhprof_foo
另外一篇文章,参考一下:http://blog.sina.com.cn/s/blog_9703d89601011g7e.html
8.使用XHProf, 在你要监测的Php代码头尾部分别加入代码xhprof_enable()和xhprof_disable()
1). 查看单个报告。 # 我们想要查看 4b4c239a86593.xhprof 这个报告的详细信息,查看链接如下: http://ecos.cn/xhprof_html/index.php?run=4b4c239a86593&source=xhprof 2). 比较两个报告。 # 我们想比较 4b4c239a86593.xhprof 和 4b4c2645794f0.xhprof 两个报告,查看链接如下: http://ecos.cn/xhprof_html/index.php?run1=4b4c239a86593&run2=4b4c2645794f0&source=xhprof
我们可以看到精确到函数级的分析数据,包括调用次数、CPU、内存等,还可以不断的向下跟踪。
相信如此详细的数据,将会给程序优化工作,带来巨大的帮助和便利。
9.而xhprof就显得很轻量,是否记录profile可以由程序控制,因此,用在生产环境中也就成为一种可能。在它的文档上可以看到这样一种用法:
以万分之一的几率启用xhprof,平时悄悄的不打枪。
if (mt_rand(1, 10000) == 1) { xhprof_enable(XHPROF_FLAGS_MEMORY); $xhprof_on = true; }
在程序结尾处调用方法保存profile
if ($xhprof_on) { // stop profiler $xhprof_data = xhprof_disable(); // save $xhprof_data somewhere (say a central DB) ... }
也可以用register_shutdown_function方法指定在程序结束时保存xhprof信息,这样就免去了结尾处判断,给个改写的不完整例子:
if (mt_rand(1, 10000) == 1) { xhprof_enable(XHPROF_FLAGS_MEMORY); register_shutdown_function(create_funcion('', "$xhprof_data = xhprof_disable(); save $xhprof_data;")); }
- 本文固定链接: https://zxbcw.cn/post/1675/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)