zoukankan      html  css  js  c++  java
  • php性能监控扩展xhprof

    XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。总体来说是个不错的工具,下面介绍下在ubuntu下的安装及使用过程。

    安装xhprof:

    wget http://pecl.php.net/get/xhprof-0.9.2.tgz
    
    tar zxf xhprof-0.9.2.tgz
    cd xhprof-0.9.2/extension/
    sudo phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config
    sudo make
    sudo make install
    

      

    为了使用图形方式查看调试结果,还必须安装graphviz这个工具,在ubuntu下你可以直接使用apt-get的方式安装,命令为:sudo apt-get install graphviz,如果是其他系统,那得曲折点,命令如下:

    wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
    tar zxf graphviz-2.24.0.tar.gz
    cd graphviz-2.24.0
    ./configure
    make && make install


    配置 php.ini

    在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=/tmp/xhprof
    注:如果是64位系统需要将xhprof.so文件拷贝到相关的lib目录下(lib64)

    修改之后重启下apache,看下phpinfo,应该有xhprof的相关信息了吧。

    将代码加入到要测试的php当中

    <?pho
    // cpu:XHPROF_FLAGS_CPU 内存:XHPROF_FLAGS_MEMORY
    // 如果两个一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY
    xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
    
    // 要测试的php代码
    
    $data = xhprof_disable(); //返回运行数据
    
    // xhprof_lib在下载的包里存在这个目录,记得将目录包含到运行的php代码中
    include_once "xhprof_lib/utils/xhprof_lib.php";
    include_once "xhprof_lib/utils/xhprof_runs.php";
    
    $objXhprofRun = new XHProfRuns_Default();
    
    // 第一个参数j是xhprof_disable()函数返回的运行信息
    // 第二个参数是自定义的命名空间字符串(任意字符串),
    // 返回运行ID,用这个ID查看相关的运行结果
    $run_id = $objXhprofRun->save_run($data, "xhprof");
    var_dump($run_id);
    查看运行结果
    

      

    将xhprof_lib&&xhprof_html相关目录copy到可以访问到的地址

    访问 xxx/xhprof_html/index.php?run=$run_id就可经看到你的php代码运行的相关情况,其中$run_id就是上面页面中输出的内容,记得一定要包含

    xhprof_lib下的两个文件,如果不想通过这个方式的话也可以直接输出相关的打印信息,即直接print_r出上面的$data的值。

    下面是一些参数说明
    Inclusive Time                 包括子函数所有执行时间。
    Exclusive Time/Self Time  函数执行本身花费的时间,不包括子树执行时间。
    Wall Time                        花去了的时间或挂钟时间。
    CPU Time                        用户耗的时间+内核耗的时间
    Inclusive CPU                  包括子函数一起所占用的CPU
    Exclusive CPU                  函数自身所占用的CPU
  • 相关阅读:
    poj 3322 不错的搜索题,想通了就很简单的。
    spoj 10649 镜子数的统计(正过来反过去一样)
    搜索第一题(poj 1190)蛋糕
    HashMap和Hashtable的区别
    ajax简单联动查询以及遇到的问题
    PHP之面向对象
    pg_bulkload快速加载数据
    WalMiner
    postgresWAL写放大优化
    postgresql创建统计信息优化
  • 原文地址:https://www.cnblogs.com/naledao/p/3638666.html
Copyright © 2011-2022 走看看