zoukankan      html  css  js  c++  java
  • xhprof安装&&使用

    听同事说起过一个php性能分析扩展,叫xhprof,近期了解了下。

     

    XHProf 是一个轻量级的分层性能測量分析器。 在数据收集阶段。它跟踪调用次数与測量数据,展示程序动态调用的弧线图。 它在报告、后期处理阶段计算了独占的性能度量。比如执行经过的时间、CPU 计算时间和内存开销。 函数性能报告能够由调用者和被调用者终止。 在数据搜集阶段 XHProf 通过调用图的循环来检測递归函数,通过赋予唯一的深度名称来避免递归调用的循环。 

    以下整理下我的安装和用法 

    1、编译安装 

    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


    2、配置 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文件复制到相关的lib64的文件夹下 

    3、在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);


    4、查看执行结果 
    将xhprof_lib&&xhprof_html相关文件夹copy到能够訪问到的地址
    訪问 xxx/xhprof_html/index.php?

    run=$run_id&source=bluefrog 就可经看到你的php代码运行的相关情况 以下是一些參数说明 Inclusive Time 包含子函数全部运行时间。

    Exclusive Time/Self Time 函数运行本身花费的时间,不包含子树运行时间。 Wall Time 花去了的时间或挂钟时间。 CPU Time 用户耗的时间+内核耗的时间 Inclusive CPU 包含子函数一起所占用的CPU Exclusive CPU 函数自身所占用的CPU



    注: 须要使用ctype这个扩展


    參考: http://www.lai18.com/content/323747.html

  • 相关阅读:
    JAVA基础——编程练习(二)
    JAVA基础——面向对象三大特性:封装、继承、多态
    JVM内存
    50. Pow(x, n) (JAVA)
    47. Permutations II (JAVA)
    46. Permutations (JAVA)
    45. Jump Game II (JAVA)
    43. Multiply Strings (JAVA)
    42. Trapping Rain Water (JAVA)
    41. First Missing Positive (JAVA)
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7077395.html
Copyright © 2011-2022 走看看