首页 > 编程语言 >PHP 使用xhprof 分析程序

PHP 使用xhprof 分析程序

时间:2023-08-11 11:57:44浏览次数:63  
标签:XHPROF PHP xhprof 分析程序 百分比 执行 方法 CPU

  1. PHP增加扩展xhrof
git clone https://github.com/longxinH/xhprof.git ./xhprof
cd xhprof/extension/
/path/to/php7/bin/phpize
./configure --with-php-config=/path/to/php7/bin/php-config
make && sudo make install
  1. PHP配置增加ini
[xhprof]
extension = xhprof.so
xhprof.output_dir = /tmp/xhprof  #选填  将分析结果 放到指定文件夹
xhprof.collect_additional_info = 1  #增加收集更多信息
  1. 执行代码中加入以下片段 即可进行分析
//开启分析
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

/**
* 执行代码块
*/

$XHPROF_ROOT = realpath(dirname(__FILE__) .'/..');
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

// 如果ini里没有设置目录 这里可以设置输出目录
$xhprof_output_dir = $XHPROF_ROOT."/xhprof/run/";
$xhprof_runs = new XHProfRuns_Default($xhprof_output_di();

// save the run under a namespace "xhprof_foo"
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");
  1. 创建站点 指向目录 /path/xhprof/xhprof_html/

注:分析结果存放路径问题 如果ini里没有设置目录,需要修改xhprof_html/index.php文件 找到XHProfRuns_Default 设置目录,否则会走默认地址/tmp/ 路径

$xhprof_output_dir =  dirname(__FILE__) ."/../run/";
$xhprof_runs_impl = new XHProfRuns_Default($xhprof_output_dir);
  1. 执行3步骤 代码块后,访问xhprof站点

分析:

Function Name:方法名称。

Calls:方法被调用的次数。

Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。

Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)

IWall%:方法执行花费的时间百分比。

Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)

EWall%:方法本身执行花费的时间百分比。

Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)

ICpu%:方法执行花费的CPU时间百分比。

Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)

ECPU%:方法本身执行花费的CPU时间百分比。

Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)

IMemUse%:方法执行占用的内存百分比。

Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)

EMemUse%:方法本身执行占用的内存百分比。

Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)

IPeakMemUse%:Incl.MemUse峰值百分比。

Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)

EeakMemUse%:Excl.MemUse峰值百分比。

标签:XHPROF,PHP,xhprof,分析程序,百分比,执行,方法,CPU
From: https://www.cnblogs.com/aurora-zone/p/17622662.html

相关文章

  • 基于PHP的家居设计交流平台
    随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的基于PHP的家居设计交流平台,会使基于PHP的家居设计交流平台的管理工作系统化、规范化,也会提高平台形象,提高管理效率。本基于PHP的家居设计交流平台是针对目前基于PHP的家居设计......
  • PHP面试的时候,遇到拼团这个功能,可能会问到的问题,带详细答案
    如何设计数据库模型来支持拼团功能?答案:拼团功能涉及到多个用户参与同一团的情况,可以设计以下表结构:Product表:存储商品信息,包括商品ID、名称、价格等字段。Group表:存储拼团信息,包括团ID、商品ID、成团人数、拼团价格等字段。User表:存储用户信息,包括用户ID、用户名、联......
  • PHP语言使用隧道代码示例
    /***请求**@param[type]$targetUrl目标站点*@param[type]$proxyIp代理ip*@param[type]$proxyPort代理端口*@param[type]$proxyUserAuthKey*@param[type]$proxyPasswordAuthPwd*@returnvoid*/functionsendRequest($targetUrl,$proxyIp,$proxyPort,$proxy......
  • PHP提薪模块
    在使用es搜索的时候需要注意以下这几点文档(Document)与索引(Index):在ES中,文档是最小的数据单元,类似于数据库中的一行记录。文档组织在索引中,索引类似于数据库中的表。了解如何创建索引和插入文档是基本的操作。分布式架构:ES是分布式的,数据被分片存储在不同的节点上。学习节点之间......
  • Thinkphp 5.0.23 远程代码执行漏洞
    漏洞简介ThinkPHP是一款运用极广的PHP开发框架。在ThinkPHP5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。漏洞复现开启vulhub靶场环境,确保ThinkPHP正常运行cdvulhub-master/thinkp......
  • php如何定义多维数组以某个字符去输出对应的值
    $arr=[['id'=>123,'test'=>['id'=>2,'title'=>"测试",'test3'=>['list'=>123]]]];$field="test.test3.list";foreach($ar......
  • PHP秒杀面试题
    什么是秒杀系统:秒杀系统是一个处理大量并发用户请求的系统,通常用于限时促销或特定活动中,用户可以在特定时间内以抢购的方式购买商品或服务。秒杀系统可能面临的挑战是什么?秒杀系统可能面临以下挑战:高并发:大量用户在同一时间请求系统,可能导致服务器压力巨大。数据库压......
  • windows下Sphinx + php 简易入门案例
    Sphinx3.5.1windows使用流程官网地址下载地址下载完成后会有这样一个目录,新建data和log目录存放数据和日志将etc目录的sphinx.conf.dist文件复制一份到bin目录下,将.dist删除以下是我的配置文件,可以根据下面的进行修改,如果有特别的需求可以看下面3.x的文档sourcedoc......
  • PHP写一个 Api接口需要注意哪些?考虑哪些?
    随着互联网的飞速发展,前后端分离的开发模式越来越流行。编写一个稳定、可靠和易于使用的API接口是现代互联网应用程序的关键。本文将介绍在使用thinkphp6框架开发API接口时需要注意的要点和考虑的问题,并提供详细的逻辑步骤和代码案例。1.设计请求与响应数据结构在开始编......
  • 如何用PHP写接口
    当用PHP编写API接口时,可以使用PHP中的框架(如Laravel、Symfony、CodeIgniter等)来简化开发过程。接下来,以使用Laravel框架为例,提供一个简单的示例代码:首先,确保已经安装了Laravel框架,并在命令行中进入项目目录,执行以下命令创建一个新的API控制器和路由:phpartisanmake:controller......