• 技术文章 >后端开发 >php教程

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

    藏色散人藏色散人2019-09-24 09:36:48转载952
    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

    e5af2af524e8771bb982624d4dbc4b0.png

    默认性能分析的指标是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

    ea3c0e00a5744b850840e9eaae2c66f.png

    显示的指标有

    1.函数名

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

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

    4.total calls 总调用次数

    以上就是tideways+toolkit对php代码进行性能分析的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:php
    上一篇:PHP写时复制(Copy On Write) 下一篇:php判断数组某个值是否存在
    PHP编程就业班

    相关文章推荐

    • php类和函数的区别• php垃圾回收机制是什么• PHP 中使用 TUS 协议来实现大文件的断点续传• PHP写时复制(Copy On Write)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网