首页 > 编程语言 >tideways+toolkit对php代码进行性能分析

tideways+toolkit对php代码进行性能分析

时间:2022-10-24 11:40:52浏览次数:48  
标签:php toolkit tideways 子函数 usr xhprof local

安装tideways拓展

git clone https://github.com/tideways/php-xhprof-extension.git
cd php-xhprof-extension/
/usr/local/php-7.4.24/bin/phpize
./configure --with-php-config=/usr/local/php-7.4.24/bin/php-config
make && make install
echo "extension=tideways_xhprof.so " >> /usr/local/php-7.4.24/conf/php.ini
systemctl restart php-fpm

安装go

wget https://golang.google.cn/dl/go1.17.8.linux-amd64.tar.gz
tar xf go1.17.8.linux-amd64.tar.gz -C /usr/local/
export PATH=$PATH:/usr/local/go/bin

export GO111MODULE=on
export GOPROXY=https://goproxy.io

安装toolkit

安装路径 /root/go/bin/toolkit

go install github.com/tideways/toolkit@latest
ln -sf /root/go/bin/toolkit /usr/local/sbin/tk
apt-get install -y graphviz

样例

<?php

if (extension_loaded('tideways_xhprof')) {
tideways_xhprof_enable(TIDEWAYS_XHPROF_FLAGS_CPU | TIDEWAYS_XHPROF_FLAGS_MEMORY);
}

application_run();

if (extension_loaded('tideways_xhprof')) {
$data = tideways_xhprof_disable();
file_put_contents(
sprintf("%s/yourapp.%d.xhprof", sys_get_temp_dir(), getmypid()),
json_encode($data)
);
}

性能分析

tk analyze-xhprof /path/to/app.xphrof

默认性能分析的指标是wt_excl,其他的指标有

1.wt 调用时长,包括子函数

2.excl_wt 调用时长,不包括子函数

3.cpu CPU调用时长,包括子函数

4.excl_cpu CPU调用时长,不包括子函数

5.memory 内存消耗(字节),包括子函数

6.excl_memory 内存消耗(字节),不包括子函数

7.io io时长,包括子函数

8.excl_io io时长,不包括子函数

生成性能瓶颈图

tk generate-xhprof-graphviz /path/to/app.xhprof
dot -Tpng callgraph.dot > callgraph.png

 



标签:php,toolkit,tideways,子函数,usr,xhprof,local
From: https://blog.51cto.com/u_4028786/5789198

相关文章

  • php生成器Generator以及yield到底是什么?
    2022年10月14日08:23:35yield关键字生成器函数的核心是yield关键字。它最简单的调用形式看起来像一个return申明,不同之处在于普通return会返回值并终止函数的执行,而yiel......
  • 浅谈PHP设计模式的工厂模式
    简介工厂模式属于创建型模式,可以分为三种:简单工厂、工厂模式、抽象工厂。通俗讲就是用于如何优雅的创建对象而设计。当开发者不知道建什么对象,或者创建方式过于复杂的时......
  • php代码审计刷题wp
    反斜杠被过滤,利用cd回到根目录<?phperror_reporting(0);if(isset($_GET["cmd"])){if(preg_match('/et|echo|cat|tac|base|sh|more|less|tail|vi|head|nl|env|fl|\|......
  • php7.4.32报错“PHP message: PHP Deprecated: Directive 'allow_url_include' is de
    如题,php7.4.32的版本下,在php.ini中打开allow_url_include会报错:NOTICE:PHPmessage:PHPDeprecated:Directive'allow_url_include'isdeprecatedinUnknowno......
  • 解决PHP-FPM进程导致的服务器内存占用
    最近php-fpm服务器经常内存偏高。最简单也是马上见效的方法是重启服务,干脆重启服务器,这个对于某些临时进程导致的内存虚高可能有效,这里显然是不行滴。很可能影响到业务。......
  • php-fpm 配置详解
    php-fpm工作流程php-fpm全名是PHPFastCGI进程管理器php-fpm启动后会先读php.ini,然后再读相应的conf配置文件,conf配置可以覆盖php.ini的配置。启动php-fpm之后,会创建一......
  • PhpOffice/PhpSpreadsheet读取和写入Excel
    PhpSpreadsheet是一个纯PHP编写的组件库,它使用现代PHP写法,代码质量和性能比PHPExcel高不少,完全可以替代PHPExcel(PHPExcel已不再维护)。使用PhpSpreadsheet可以轻松读取和写......
  • phpMyAdmin后台SQL注入【CVE-2020-5504】
    环境搭建使用vulfocus靶场,官网:https://vulfocus.cn/#/dashboarddockerpullvulfocus/phpmyadmin-cve_2020_5504dockerrun-d-p80:80vulfocus/phpmyadmin-cve_2020......
  • php yield详解
       简单例子//包含yield的函数可以生成一个generator对象,可以被foreach遍历functionGenerator(){for($i=0;$i<3;$i++){echo"输出存在......
  • PHP 类中属性的扩展 (感觉好随意啊...)
     >>>注意对魔术方法的使用 1publicfunction__set($name,$value)2{3if($name=='xxx'){4returnfalse;//不允许修改某......