如何通过xhprof分析性能

技术文档网 2021-04-14
  • 使用方法

    xhprof_enable();
    /**
    ...
    要检查的php代码
    ...
    **/
    $xhprof_data = xhprof_disable();
    
    // 引入xhprof_lib
    include_once "/usr/local/php/lib/php/xhprof_lib/utils/xhprof_lib.php";
    include_once "/usr/local/php/lib/php/xhprof_lib/utils/xhprof_runs.php";
    
    $instance = new XHProfRuns_Default();
    $run_id = $instance->save_run($xhprof_data, "xhprof");
    //此处ip地址及端口根据自身进行更改
    echo 'http://192.168.31.135:8080/xhprof_html/index.php?run=' . $runId . '&source=xhprof';
    

    为了不用每次都要手动加入以上代码

  • 更优雅的方式如下

    在/usr/local/php/lib/php/xhprof_lib目录下,新建一个xhprof.inc.php文件,写入以下

    xhprof_enable(XHPROF_FLAGS_MEMORY | XHPROF_FLAGS_CPU);
    register_shutdown_function(function() {
      $xhprof_data = xhprof_disable();
      if (function_exists('fastcgi_finish_request')){
          fastcgi_finish_request();
      }
      include_once "/var/www/xhprof/xhprof_lib/utils/xhprof_lib.php";
      include_once "/var/www/xhprof/xhprof_lib/utils/xhprof_runs.php";
      $xhprof_runs = new XHProfRuns_Default();
      $run_id = $xhprof_runs->save_run($xhprof_data, 'xhprof');
      echo 'save xhprof data';
    });
    
  • 利用PHP的自动加载功能,在执行代码前注入此文件,编辑php.ini

    auto_prepend_file = /usr/local/php/lib/php/xhprof_lib/xhprof.inc.php
    
  • 重启php

  • 分析结果目录

    /tmp/xhprof

相关文章

  1. 如何通过xhprof分析性能

    使用方法 xhprof_enable(); /** ... 要检查的php代码 ... **/ $xhprof_data = xhprof_disable(); // 引入xhprof_lib i

  2. LUMEN API Controller 规范

    1. 第三方依赖库规范 在使用LUMEN实现API接口时,以下库必须需要包含在composer包依赖中,以实现代码编写的一些规范 dingo/api : 实现API接口库 vlucas/phpdo

  3. PHP文件锁

    共享锁(LOCK_SH) 什么时候加共享锁? 当在读取数据的时候同时进行着其他的写操作,这个时候需要对文件加共享锁,否则无论有没有对写操作加写锁都会写入成功,导致数据不一致 当文件获得共享锁时,其他

  4. Hello-Risen-程序

    首先需要说明的是,您下载到的文件包含两部分,其中src中是开发源码,用于对Risen框架本身的开发,risen 目录中是通过源码生成的包含debug和release版本的框架程序,用于您应用程序的开发

  5. PHP自定义类示例(Weixin消息解析类)

    PHP自定义类示例(Weixin消息解析类) /** * Created by Qingger. * User: jsspf * Date: 2017/3/24 * Time: 10:50

随机推荐

  1. 如何通过xhprof分析性能

    使用方法 xhprof_enable(); /** ... 要检查的php代码 ... **/ $xhprof_data = xhprof_disable(); // 引入xhprof_lib i

  2. LUMEN API Controller 规范

    1. 第三方依赖库规范 在使用LUMEN实现API接口时,以下库必须需要包含在composer包依赖中,以实现代码编写的一些规范 dingo/api : 实现API接口库 vlucas/phpdo

  3. PHP文件锁

    共享锁(LOCK_SH) 什么时候加共享锁? 当在读取数据的时候同时进行着其他的写操作,这个时候需要对文件加共享锁,否则无论有没有对写操作加写锁都会写入成功,导致数据不一致 当文件获得共享锁时,其他

  4. Hello-Risen-程序

    首先需要说明的是,您下载到的文件包含两部分,其中src中是开发源码,用于对Risen框架本身的开发,risen 目录中是通过源码生成的包含debug和release版本的框架程序,用于您应用程序的开发

  5. PHP自定义类示例(Weixin消息解析类)

    PHP自定义类示例(Weixin消息解析类) /** * Created by Qingger. * User: jsspf * Date: 2017/3/24 * Time: 10:50