XHProf安装使用笔记

from: http://www.sourcejoy.com/php_dev/xhprof_install_and_usage.html

libpng:

先安装...

graphviz-2.26.3.tar.gz安装dot

64bit:./configure --enable-swig=no  --with-extralibdir=/usr/lib64  --with-expatlibdir=/usr/lib64

make

make install

测试:

dot -T png 如果不报错就ok了

XHProf安装使用笔记

作者:北风 发布时间:June 3, 2010 分类:PHP

最近公司web服务器老是耗费大量CPU,上面安排我协助搞运维的同事查问题,查了配置,反向代理服务器等外围环境没发现什么大问题,接下来只有查程序了。但程序怎么查呢?不能一句句读代码吧,那样不可靠也不科学,所以必须要有工具对应用程序进行测试(我们的应用是PHP开发的),百度了一下(原谅哥的不专业)发现了XHProf这么个东西,是Facebook开源的一个PHP性能检测程序,大致看了一下,很棒,里面有很多直观的数据来说明问题,比如调用次数、执行时间、内存使用、CPU占用等。有了这个东西,报告就好写啦!这里对这个程序的安装和使用做个简单记录。

废话不说,直接进主题。

编译安装

获取源代码包
root@sourcjoy>wget http://pecl.php.net/get/xhprof-0.9.2.tgz
解压
root@sourcjoy>tar zxf xhprof-0.9.2.tgz
root@sourcjoy>cd xhprof-0.9.2
复制web访问目录到web应用目录
root@sourcjoy>cp -r xhprof_html xhprof_lib /var/www/html/  #复制xhprof的展示页面目录和库目录到web目录下,可以为xhprof_html建个虚拟目录来访问,也可以把这两个目录拷贝到应用的根目录下。
root@sourcjoy>cd extension/
编译插件
root@sourcjoy>/usr/local/webserver/php/bin/phpize
root@sourcjoy>./configure --with-php-config=/usr/local/webserver/php/bin/php-config
root@sourcjoy>make
root@sourcjoy>make install

注意:这里安装的时候可能会出现访问php.ini没权限的问题,请把php.ini的权限改成666:
chmod 666 /usr/local/webserver/php/etc/php.ini

配置 php.ini 文件
root@sourcjoy>vi /usr/local/webserver/php/etc/php.ini在合适位置加入以下内容:

[xhprof]
extension=xhprof.so;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
;xhprof.output_dir=<directory_for_storing_xhprof_runs>xhprof.output_dir=/var/logs/xhprof

重启web服务器

为了更加清晰显示程序执行、调用结构,安装Graphviz,如果安装了Graphviz,XHProf会用比较牛的图形方式展现统计数据。
获取源码包
root@sourcjoy>wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
root@sourcjoy>tar zxf graphviz-2.24.0.tar.gz
root@sourcjoy>cd graphviz-2.24.0
编译安装
root@sourcjoy>./configure
root@sourcjoy>make
root@sourcjoy>make install

接下来在要统计的php应用中加入以下语句:
xhprof_enable(); //统计的代码部分之前加,如果要显示CPU占用 可以加入XHPROF_FLAGS_CPU参数,内存是XHPROF_FLAGS_MEMORY,如果两个一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY,如:xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

xhprof_disable();//统计的代码部分之后加

这样xhprof就可以统计当前页面的函数性能情况了。xhprof会把每次访问加入统计代码的页面的性能统计结果在指定目录下生成一个文件,文件名命名方式为:本次访问的系统ID.命名空间,每次刷新页面都会重新生成一个文件,每个的系统ID都不同。

然后通过xhprof_html目录的http访问url来查看结果。如:http://app/xhprof_html/?run=运行id&source=命名空间(其中运行ID和命名空间可以根据xhprof生成的文件名来确定)

下面是个例子:

<?php
function a(){
 echo 'a';
}
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);   //XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY
// run program  
a();
// stop profiler  
$xhprof_data = xhprof_disable();   //返回运行数据

// 下面是保存运行数据
include_once "xhprof_lib/utils/xhprof_lib.php";  
include_once "xhprof_lib/utils/xhprof_runs.php";  
 
$xhprof_runs = new XHProfRuns_Default();  
 
$run_id = $xhprof_runs->save_run($xhprof_data, "sourcejoy");   //第一个参数是 xhprof_disable()函数返回的运行信息,第二个参数是自定义的命名空间字符串(任意字符串),返回运行ID。
?>

名词:
1. Inclusive Time :包括子函数所有执行时间。
2. Exclusive Time/Self Time:函数执行本身花费的时间,不包括子树执行时间。
3. Wall Time:花去了的时间或挂钟时间。
4. CPU Time:用户耗的时间+内核耗的时间
5.Inclusive CPU:包括子函数一起所占用的CPU
6.Exclusive CPU:函数自身所占用的CPU

最后要说点,这个xhprof程序有点小bug,还不支持php5.2一下的版本,不过这都是小问题,关键是能直观告诉我们程序的性能问题,这个很重要,我们自己开发程序的时候用这个进行性能检查是很不错的。

-END-

本文是sourcejoy.com的原创文章,要转载必须写明来自http://www.sourcejoy.com/ 如果没表明转载自本站,可能会受到一封律师信哦~

posted on 2011-04-07 15:05 sunvince 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/sunvince/archive/2011/04/07/2037616.html

XHProf安装使用笔记相关推荐

  1. Ubuntu14.04安装Torch7笔记

    Ubuntu14.04安装Torch7笔记 利用快捷键Ctrl+Alt+T打开Ubuntu终端 第一步: 获取安装LuauJIT(C语言编写的Lua的解释器)和Torch所必需的依赖包. 代码如下: ...

  2. php性能测试下载,PHP性能测试工具xhprof安装与使用方法详解

    本文实例分析了PHP性能测试工具xhprof安装与使用方法.分享给大家供大家参考,具体如下: xhprof概述: XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞 ...

  3. php性能分析工具XHProf安装配置使用教程(linux精华版)

    XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况.一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调 ...

  4. linux系统安装xhprof,LNMP部署laravel与xhprof安装使用

    整个过程部署laravel与xhprof安装 前提成功安装了LNMP集成环境 (lnmp.org 即可快速安装),保证network正常运行 首先配置laravel的运行环境 1.上传代码到/home ...

  5. freebsd 6.2 安装配置笔记[转]

    freebsd 6.2 安装配置笔记June 28th, 2007 作者: Jeffrey 出处:http://blog.zhangjianfeng.com/?p=588 freebsd 6.2 安装 ...

  6. 蚂蚁笔记 linux安装教程,群晖docker安装蚂蚁笔记安装教程

    原标题:群晖docker安装蚂蚁笔记安装教程 背景 偶然看见其他网友群晖一个 用途 当然是安装镜像了,需要安装2个 映像 mongo与leanote 2.直接创建mongo容器,端口27017 其他默 ...

  7. Python 的scikit-learn和tensorflow在虚拟环境下安装配置笔记

    Python 机器学习安装配置笔记 这学期开始上人工智能课,任课老师要求安装python和对于机器学习深度学习的各种库. 以前做过类似项目,顺便就把配置环境的流程记录下来. 中间有引用他人的博客,都有 ...

  8. 群晖NAS教程(十)、利用Docker安装蚂蚁笔记(leanote)

    为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客 群晖NAS教程(十).利用Docker安装蚂蚁笔记(leanote) 蚂蚁笔记是一款特别棒的笔记软件,支持Markdown语法,是程序员必备的软件 ...

  9. CentOS8安装Geant4笔记(三):Geant4介绍、编译、安装支持Qt5界面并运行exampleB1例程显示Qt界面

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/123495062 各位读者,知识无穷而人力有穷 ...

最新文章

  1. 2022-2028年中国科学仪器行业研究及前瞻分析报告
  2. 【精华】【经典】自动化循环操作方法当前网页方法,可以用于本地化AI智能自动抓取网页资源信息,类似爬虫功能
  3. 在Leangoo中,如何快速切换项目内看板?
  4. AtCoder AGC022C Remainder Game (图论)
  5. 避免活跃性危险(第十章)
  6. 自定义EventSource(三)IncrementingEventCounter
  7. linux下GPRS模块ppp拨号上网
  8. 支付宝五福活动抢先开始了!原来今年可以提前集
  9. 又错过了暴富的机会!亚马逊AWS突发Bug,比特币现史诗级捡漏机会?
  10. [WM C++]从资源文件中加载显示png/jpg图片
  11. 微信小程序使用图标库
  12. NTFS权限和文件详解
  13. ubuntu编辑只读文件_Ubuntu linux vim 修改只读文件 修改Apache2端口号 ports.conf
  14. 鸿蒙系统是虚头,PS里如何分辨抠图用何种方法?
  15. 今天520情人节,你确定不学一下「情话设计模式」?
  16. Kibana启动常见报错信息的解决方案
  17. 【Spring Boot】21.集成elasticsearch
  18. 2018-11-04 在线代码离线翻译Chrome插件一马v0.0.14
  19. telegram怎么改密码?
  20. Whale帷幄 - 门店销售数据分析都有哪些

热门文章

  1. 服务器信号分析,服务器及其讯号解析装置 Server and its signal analysis apparatus
  2. stm32如何执行软复位_常见的单片机复位方式及其原理分析
  3. 排序算法java源代码_排序算法汇总(java实现,附源代码)
  4. python统计字符串中每个单词出现的次数_python中每个单词出现的次数是一组字符串?...
  5. Android固定宽度文字自适应大小
  6. 开发日记-20190627 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 4
  7. 关于android从入门到精通4.1.9范例1出现的闪退的问题
  8. 一种神经元探索系统方法及装置
  9. linux编程 fmemopen函数打开一个内存流 使用FILE指针进行读写访问
  10. golang channel本质——共享内存