资讯专栏INFORMATION COLUMN

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

rubyshen / 2870人阅读

toolkit是tideway官方提供的性能分析的命令行工具。如果你只是本地开发调试接口性能,不想安装xhgui,那么使用toolkit就足够了

安装 安装tideways拓展
git clone https://github.com/tideways/php-xhprof-extension.git
cd php-profiler-extension
phpize
./configure
make && make install

在php.ini中加入

extension=tideways_xhprof.so

重启php-fpm

service php-fpm restart
toolkit安装
go get github.com/tideways/toolkit
# 安装graphviz
# macOS
brew install graphviz
# ubuntu
sudo apt-get install -y graphviz
设置别名
alias tk=toolkit
tideways+toolkit 代码埋点

在程序入口中加入

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

// 你的代码
application();

if (extension_loaded("tideways_xhprof")) {
    $data = tideways_xhprof_disable();
    file_put_contents(
        sprintf("%s/app.xhprof", "/path/to"),
        json_encode($data)
    );
}

执行下代码,然后就会生成/path/to/app.xphrof

性能分析
tk analyze-xhprof /path/to/app.xphrof

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

wt 调用时长,包括子函数

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

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

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

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

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

io io时长,包括子函数

excl_io io时长,不包括子函数

生成性能瓶颈图
tk generate-xhprof-graphviz /path/to/app.xhprof
dot -Tpng callgraph.dot > callgraph.png

显示的指标有

函数名

Inc 函数运行时间,包括子函数

Excl 函数运行时间,不包括子函数

total calls 总调用次数

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30759.html

相关文章

  • PHP性能被动分析工具之xhgui加tideways的安装实践

    摘要:性能被动分析工具之加的安装实践前言最近一直想做个接口性能分析,但是手打实在能把人给累死。怎么办呢想到之前有写过一篇我所知道的相关调优汇总,里面有一个的调优方式。但是使用它酷炫的需要付费,扩展则不需要。 PHP性能被动分析工具之xhgui加tideways的安装实践 By:0x584A Date:2016-11-23 17:55:42 前言 最近一直想做个接口性能分析,但是手打log实在...

    Chiclaim 评论0 收藏0
  • 使用phpAnalysis打造PHP应用非侵入式性能分析

    使用phpAnalysis打造PHP应用非侵入式性能分析器,查找PHP性能瓶颈。 什么是phpAnalysis phpAnalysis是一款轻量级非侵入式PHP应用性能分析器,适用于开发、测试及生产环境部署使用,方便开发及测试工程师诊断性能问题: 通过tideways收集PHP程序单步运行过程中所有的函数调用时间及CPU内存消耗等信息 信息永久存储到MySQL数据库 分析每个请求执行的信息,帮助...

    BDEEFE 评论0 收藏0
  • Xhgui+Tideways的使用

    摘要:简介基于,以图形化方式显示结果。为啥不在里面配置而是因为我这是本地调试,重在分析某一个接口,而不是观测线上的正式环境。还有这个原因备注重启视个人重启方式而定,我的重启方式是这样的参考 简介 xhgui基于xhprof,以图形化方式显示结果。简单点就是更加直观。采用tideways + xhgui组合的原因是我的PHP版本是7,而xhprof不支持,(虽然我安装了一个支持php7的xhp...

    mj 评论0 收藏0
  • 使用XHProf分析PHP性能瓶颈(二)

    摘要:上一篇文章里,我们介绍了如何基于扩展来分析性能,并记录到日志里,最后使用扩展自带的在里展示出来。本次测试中,实际使用了扩展切换为扩展后里看不到数据,原因未知。虽然来自但已经很久不更新,官方源已经显示此包已废弃,不再维护。 上一篇文章里,我们介绍了如何基于xhprof扩展来分析PHP性能,并记录到日志里,最后使用xhprof扩展自带的UI在web里展示出来。本篇文章将讲述2个知识点: ...

    Worktile 评论0 收藏0
  • Tideways、xhprof 和 xhgui 打造 PHP 非侵入式监控平台

    摘要:参考配置添加,告诉程序在执行前要调用的服务或者也可以在修改配置文件,告诉程序在执行前要调用的服务参考链接 showImg(https://segmentfault.com/img/bVbt7t1?w=2880&h=2608); 推荐阅读 Tideways、xhprof 和 xhgui 打造 PHP 非侵入式监控平台 超全的设计模式简介(45种) design-patterns-for...

    shevy 评论0 收藏0

发表评论

0条评论

rubyshen

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<