xhprof 安装

调试PHP时,XDebug一直是大众的不二选择,搭配上Webgrind,可以获得不错的效果。今天看某人的栖息地里的介绍,才发现了XHProf,于 是体验了一下,感觉很酷,与XDebug相比,运行更轻便,表现更易懂,下面记录一下体验过程。

安装XHProf

  1. wget http://pecl.php.net/get/xhprof- 0.9 . 2 .tgz  
  2. tar zxf xhprof-0.9 . 2 .tgz  
  3. cd xhprof-0.9 . 2   
  4. cp -r xhprof_html xhprof_lib <directory_for_htdocs>  
  5. cd extension  
  6. phpize  
  7. ./configure  
  8. make  
  9. make install  



配置php.ini

  1. [xhprof]  
  2. extension=xhprof.so  
  3. ;  
  4. ; directory used by default implementation of the iXHProfRuns  
  5. ; interface (namely, the XHProfRuns_Default class) for storing  
  6. ; XHProf runs.  
  7. ;  
  8. xhprof.output_dir=<directory_for_storing_xhprof_runs>  


重启服务让修改生效,现在就可以使用XHProf了,不过为了显示效果更炫,最好继续安装Graphviz。

安装Graphviz

  1. wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz- 2.24 . 0 .tar.gz  
  2. tar zxf graphviz-2.24 . 0 .tar.gz  
  3. cd graphviz-2.24 . 0   
  4. ./configure  
  5. make  
  6. make install  


安装完成后,会生成/usr/local/bin/dot文件,你应该确保路径在PATH环境变量里,以便XHProf能找到它。

使用XHProf
在你要监测的Php代码头尾部分别加入代码xhprof_enable()和xhprof_disable()

  1. // start profiling   
  2. xhprof_enable();  
  3. // run program   
  4. ....  
  5. // stop profiler   
  6. $xhprof_data  = xhprof_disable();  
  7. //   
  8. // Saving the XHProf run   
  9. // using the default implementation of iXHProfRuns.   
  10. //   
  11. include_once   $XHPROF_ROOT  .  "/xhprof_lib/utils/xhprof_lib.php" ;  
  12. include_once   $XHPROF_ROOT  .  "/xhprof_lib/utils/xhprof_runs.php" ;  
  13.   
  14. $xhprof_runs  =  new  XHProfRuns_Default();  
  15.   
  16. // Save the run under a namespace "xhprof_foo".   
  17. //   
  18. // **NOTE**:   
  19. // By default save_run() will automatically generate a unique   
  20. // run id for you. [You can override that behavior by passing   
  21. // a run id (optional arg) to the save_run() method instead.]   
  22. //   
  23. $run_id  =  $xhprof_runs ->save_run( $xhprof_data "xhprof_foo" );  
  24.   
  25. echo   "---------------/n" .  
  26. "Assuming you have set up the http based UI for /n" .  
  27. "XHProf at some address, you can view run at /n" .  
  28. "http://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo/n" .  
  29. "---------------/n" ;  


如此一来,会在上面设定的xhprof.output_dir目录里生成名字类似49bafaa3a3f66.xhprof_foo的数据文件, 可以很方便的通过Web方式浏览效果:

http://<xhprof-ui-address>/index.php?run=49bafaa3a3f66&source=xhprof_foo

目前显示的是表格形式的显示,点击页面上的[View Full Callgraph],就能看到精美的图片显示了。

你可能感兴趣的:(PHP,interface,extension,Graphviz,profiler,behavior)