用Clion搭建tideways调试环境(基于linux)

背景

   最近在预研PHP探针,发现目前开源的主要有PHP-Xhprof、pinpoint、skywalking 三款。对比了一下三款探针,如下图:

xhprof pinpoint skywalking
开源协议 Apache License, Version 2.0 Apache License, Version 2.0 Apache License, Version 2.0
支持框架 magento、shopware、esales、symfony、wordpress 支持框架很少 支持框架很少
用户 未找到 未找到 轻易贷、垫付宝
开发语言 c 、 php cpp c
稳定性 有商用产品 未知 未知
扩展性 提供了很多借口、可以通过php语言自身实现扩展 按照规范些cpp插件 扩展性差、需要直接修改php扩展
其他 采样和发送分离,可以自己实现数据传输的逻辑 直接结成了thrift,很难替换成其他 采样数据写到日志文件,另一个进程读文件发送数据

   三种探针都是基于php扩展的方式实现的。具体的php生命周期和扩展加载方式后面再写文章详细说明。
   综合来看,xhprof在扩展性、稳定性、支持框架、开发语言方面更胜一筹。所以,先深入研究一下xhprof。xhprof是facebook开发的一个测试php性能的扩展,采集的数据包括函数的调用次数,花费的时间(自身花费时间和包含内部函数花费的时间),所占内存/CPU,所占内存的峰值及所占百分比,目前facebook已经不再维护,Faceboo已经全面使用HHVM,不再使用PHP zend引擎(上述三种探针是基于zend引擎的),Xhprof不支持php7 ,tideways是从xhprof项目fork下来继续进行维护的,目前支持PHP 7.2, 7.1, 7.0, 5.6 and 5.5等版本。tideways探针还是开源的,他收费的是UI展现的服务。

环境搭建

编译php

  第一步需要下载php源码,并编译安装debug版本的php,源码地址:https://github.com/php/php-src 具体编译说明参照源码里面的REMDME。记得编译的时候要指定–enable-debug 以便使编译出来的php带有调试信息。

搭建tideways环境

下载tideways源码

  地址:https://github.com/tideways/php-xhprof-extension

通过clion导入tideways源码

编辑CMakeLists文件:

  主要是引入php、zend等的相关源码。见下图:

编辑调试参数

发表评论

邮箱地址不会被公开。 必填项已用*标注