windows配置xhprof,PHP性能分析工具

本来以为配置这么一个工具不会费很大的力气,后面发现完全不是。

一、小插曲

  早上显示电脑不能显示虚拟目录下的所有域名,但是能打开localhost,数据库连接也不行了。这个问题纠缠了我一个上午。对了还有个问题是输入法不能显示了,后面下载了个百度卫士修复了下,早上真是诸事不顺。

1)一开始以为是firefox浏览器Fiddler插件的问题,然后关闭firefox中的插件,关闭Fiddler,发现还是不能打开网站。

  

2)以为是浏览器的问题,马上打开另外几个浏览器,在chrome浏览器中打开,依旧不能打开,显示下面的错误,IE中也不行,这就奇怪了。然后根据错误代码在百度和google上面搜索,没查到什么有用的。

  

3)后面经同事提醒可以看看apache的日志,看看有没有蛛丝马迹。但奇怪的是log都没有发生变化。

  

4)打开防火墙,发现已经全部都关闭,后面打开windows日志,也没发现有啥问题。

  

5)最后,再分析了下问题,发现其实是不能访问127.0.0.1这个域名导致的。然后再搜索找到一条指令,试一下,还真行了。

  

6)一个莫名奇妙的问题出现在面前,做的第一件事情就是打开搜索引擎,然后描述问题;不过很多时候,一开始描述的并不是问题的核心所在,只能在不断尝试的时候,把问题分析的越来越清晰。

  下午安装xhprof也是一个差不多的分析问题的过程,我的php版本是5.5.17的。

二、windows环境

1)首先就是下载xhprof扩展包,搜索关键字“xhprof”,马上就找到了php官网上的下载链接,然并卵,这个linux环境的。

2)马上搜索起来,还是顺利的找到了,而且版本还有多种,windows xhprof,朴素的页面我喜欢。

三、php.ini

1)把下载到的php_xhprof.dll,放到php的ext目录下面。然后打开扩展

2)最后配置日志文件

3)在phpinfo中查看是否出现了这个扩展,很好,已经出现了。

四、demo

1)在github上面下载到了xhprof的php相关代码事例。目录结构如下,等一下会用到的是examples,xhprof_html与xhprof_lib。

2)现在examples文件夹中打开example.php文件,出现了下面的一串信息。

3)然后打开xhprof_html,出现了下面的几个日志,这个日志存放在php.ini设置的xhprof.output_dir目录中。

4)点击某个日志,出现了下面的表格,里面代表的内容可以在网上查到。

5)点击view full callgraph,这个其实是我最想看到的效果,满心期待的,可是出现了一个无情的错误,囧。

  

6)在网上搜索到一篇文章,里面讲到是因为没有安装Graphviz,这个软件导致的,马上就去下载。

  

7)以为下下来就可以了,万万没想到,一如既往的报错。在那篇文章中说到给config.php文件配置个目录,我在事例代码中看了半天都没找到这个文件,以为在忽悠我,后来我在那篇博客中下载了demo代码,果然发现了这个文件,不过即使把这个文件放到我这边,也没啥鸟用。又开始搜索,搜到篇洋人写的文章,也提到了配置。

  

8)最后在Stack Overflow这个网站上面发现了灵感,这个网站还真是有用。有个洋人说道:

  

9)还有这么个文件,马上找到这个函数xhprof_generate_image_by_dot

$descriptorspec = array(
       // stdin is a pipe that the child will read from
       0 => array("pipe", "r"),
       // stdout is a pipe that the child will write to
       1 => array("pipe", "w"),
       // stderr is a pipe that the child will write to
       2 => array("pipe", "w")
       );

  $cmd = " dot -T".$type;

  $process = proc_open( $cmd, $descriptorspec, $pipes, sys_get_temp_dir(), array( ‘PATH‘ => getenv( ‘PATH‘ ) ) );

10)发现读取了PATH这个环境变量,原来是要配置下这个环境变量的,我当时其实是配置过一次的,不过不是配的系统变量,囧,将Graphviz2.38\bin的绝对路径写上去。

11)期待已久的图片终于出现了。

如果想要应用到实际项目中,肯定还有很多地方需要修改。

demo下载:

http://download.csdn.net/detail/loneleaf1/8958017

参考资料:

http://blog.snsgou.com/post-816.html 安装PHP性能测试工具 xhprof_0.10.3_php53_vc9.dll

http://stackoverflow.com/questions/2930254/linux-dot-utility-with-xhprof  linux dot utility (with xhprof)

http://www.lornajane.net/posts/2012/generating-callgraph-with-xhgui  Generating Callgraph with XHGUI

时间: 2024-11-05 18:28:41

windows配置xhprof,PHP性能分析工具的相关文章

windows下安装php性能分析工具XHProf

一.安装扩展 下载XHProf扩展:http://dev.freshsite.pl/php-extensions/xhprof.html 放入扩展文件:下载后解压出.dll文件,拷贝它到php的ext文件夹里面. 开启扩展:php.ini中加入下面的代码 [xhprof] extension=xhprof.dll xhprof.output_dir="F:/xhprof/xhprof_log" 二.安装php分析包 这个扩展需要一个php程序来调用. 百度网盘下载:http://pan

PHP性能分析工具XHProf安装使用教程

HProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile.基于浏览 器的性能分析用户界面能更容易查看,或是与同行们分享成果.也能绘制调用关系图.在数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序. 它独有的数据计算的报告/后处理阶段.在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开

xhprof 性能分析工具

1.下载的zip文件解压缩后将php_xhprof.dll 文件,直接放到php的ext目录里面 2.然后将xhprof_html 文件夹和xhprof_lib文件夹和config.php直接放到你的根目录下面 3.配置php.ini文件 将下面内容添加到php.ini文件里面 extension=php_xhprof.dll [quote] [xhprof] xhprof.output_dir="D:/xampp/htdocs/xhprof_log" [/quote] 4.htdoc

php性能分析工具 - xhprof的安装使用

一.前言 有用的东西还是记录下来吧,也方便以后的查询:这次记录一下xhprof的安装使用: xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低, 还可以用在生产环境中,也可以由程序开 关来控制是否进行profile. 二.安装 1. wget http://pecl.php.net/get/xhprof-0.9.3.tgz 2. tar zxf xhprof-0.9.3.tgz 3. cd xhprof-0.9.3/extension 4.

性能分析工具-PerfView

Roslyn的PM(程序经理) Bill Chiles,Roslyn使用纯托管代码开发,但性能超过之前使用C++编写的原生实现,这有什么秘诀呢?他最近写了一篇文章叫做<Essential Performance Facts and .NET Framework Tips>里头推荐了一个性能分析工具<Improving Your App's Performance with PerfView>.PerfView能够收集Windows事件跟踪(ETW)数据来追踪程序的调用流向,这些程序

Java性能优化指南系列(二):Java 性能分析工具

进行JAVA程序性能分析的时候,我们一般都会使用各种不同的工具.它们大部分都是可视化的,使得我们可以直观地看到应用程序的内部和运行环境到底执行了什么操作,所以性能分析(性能调优)是依赖于工具的.在第2章,我强调了基于数据驱动的性能测试是非常重要的,我们必须测试应用的性能并理解每个指标的含义.性能分析和数据驱动非常类似,为了提升应用程序的性能,我们必须获取应用运行的相关数据.如何获取这些数据并理解它们是本章的主题.[本章重点介绍JDK中提供的性能分析工具] 操作系统工具及其分析 程序分析的起点并不

Oracle性能分析工具介绍及使用

oracle数据库级别优化分析工具介绍 当我们对数据库优化诊断时,需要收集相应的信息以供参考,从个人的使用经验来说,这种统计数据分为两大类 一类是数据库级别的统计信息二类是os级别的统计信息 下面就分别介绍在不同的级别下,常用什么工具来收集信息帮助优化诊断 首先是oracle数据库级别优化分析工具介绍 目录: 1.statspack2.ASH3.AWR4.ORACLE EXPLAIN PLAN的总结(查询sql的执行计划)   a.autotrace   b.explain的使用 1.stats

Android 常用的性能分析工具详解:GPU呈现模式, TraceView, Systrace, HirearchyViewer(转)

此篇将重点介绍几种常用的Android性能分析工具: 一.Logcat 日志 选取Tag=ActivityManager,可以粗略地知道界面Displaying的时间消耗.当我们打开一个Activity的时候,log会打印一串log如下: I/ActivityManager﹕ Displayed xxx.xxx.xxx/TestActivity: +1s272ms (total +3s843ms) 第一个时间表示系统接受到打开的intent到TestActivity界面显示出来的时间1.272秒

Visual Studio代码性能分析工具

AMD CodeXL 2011年发布的AMD CodeAnalyst Performance Analyzer 现在已经被AMD CodeXL所替代.AMD CodeXL的主要目的是帮助开发者更好利用CPU, GPU和APU的计算性能,具有强大的GPU调试.CPU和GPU代码分析.及静态的OpenCL内核性能分析等能力. AMD提供了支持Windows 7.Windows 8和Linux系统的单机版CodeXL分析工具.在Visual Studio 2010,2012和2013上也有AMD Co

转 性能分析工具汇总

一.分析工具   1.CPU性能分析工具: vmstat ps sar time strace pstree top 2.Memory性能分析工具: vmstat strace top ipcs ipcrm cat /proc/meminfo cat /proc/slabinfo cat /proc//maps 3.I/O性能分析工具: vmstat ipstat repquota quotacheck 4.Network性能分析工具: ifconfig ethereal tethereal i