PhalApi-Xhprof -- Facebook开源的轻量级PHP性能分析工具

#PhalApi-Xhprof -- Facebook开源的轻量级PHP性能分析工具

##前言

Facebook开源的轻量级PHP性能分析工具,非常爽希望大家喜欢

附上:

官网地址:http://www.phalapi.net/

开源中国Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release

开源中国拓展Git地址:http://git.oschina.net/dogstar/PhalApi-Library

##1. 安装

首先需要安装配置Xhprof

wget http://pecl.php.net/get/xhprof-0.9.2.tgz

tar zxf xhprof-0.9.2.tgz

cd xhprof-0.9.2/extension/

sudo phpize
./configure --with-php-config=/usr/local/php/bin/php-config
sudo make
sudo make install

需要在php.ini中配置好

[xhprof] extension=xhprof.so; ; directory used by default implementation of the iXHProfRuns ; interface (namely, the XHProfRuns_Default class) for storing ; XHProf runs. ; ;xhprof.output_dir=<directory_for_storing_xhprof_runs> xhprof.output_dir=/tmp/xhprof

通过phpinfo()看到xhprof扩展则为安装成功

注意:xhprof.output_dir=/tmp/xhprof,设置必须统一不然需要自行替换编译出来html的问题到拓展项目中

然后对我们的index.php文件做如此的改造

在头部加上:

if (!empty($_GET['__debug__'])) {
    xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
}

在尾部加上: if (!empty($_GET['debug'])) {

    $data = xhprof_disable();

    include API_ROOT . "/Library/Xhprof/utils/xhprof_lib.php";
    include API_ROOT . "/Library/Xhprof/utils/xhprof_runs.php";
    $objXhprofRun = new XHProfRuns_Default();//数据会保存在php.ini中xhprof.output_dir设置的目录去中
    echo $objXhprofRun->save_run($data, "developers");
}

这个时候我们访问的时候带入请求参数__debug__可以获得如下返回

然后我们访问http://xxxx/Library/Xhprof/index.php可以的到如下界面

我们可以看到有一个key和上面生成的一样的我们点击进去:

##2. 总结

希望此拓展能够给大家带来方便以及实用,此扩展可以分析出在整个运行途中的消耗用时可以针对进行优化,在压力情况下可以非常好的辨别出慢代码出现在哪里!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

官网QQ交流群:421032344 欢迎大家的加入!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏marsggbo

coursera 视频总是缓冲或者无法观看的解决办法

注意!!!该方法针对Windows用户,亲测有效。 1.用管理员权限记事本打开host文件 2.将如下内容复制到文件末尾 52.84.246.90 ...

2275
来自专栏.Net移动开发

.Net语言 APP开发平台——Smobiler学习日志:基于Access数据库的Demo

说明:该demo是基于Access数据库进行客户信息的新增、查看、编辑 新增客户信息和客户列表

1472
来自专栏张伟博客

Centos7端口转发采用firewall-cmd让80端口转发至8080端口

一:首先来了解下Centos7新增的命令工具网络防火墙:firewall-cmd,非常强大!

2602
来自专栏IT笔记

公司内网搭建代理DNS使用内网域名代替ip地址

一般在企业内部(科帮网),开发、测试以及预生产都会有一套供开发以及测试人员使用的网络环境。运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口...

4928
来自专栏后端技术探索

lnmp和lamp浅谈对比

LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Nginx网络服务器,MySQL数据库...

1701
来自专栏java沉淀

provisional headers are shown 原因分析

4796
来自专栏java达人

微服务架构实践

作者:赵计刚 来源:http://www.cnblogs.com/java-zhao/p/5538232.html(点击文末阅读原文前往) 一、微服务架构图: ...

2466
来自专栏hbbliyong

运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序正在运行的问题解决

删除文件后再次运行yum可用。 --------------------- 作者:黯淡荣耀 来源:CSDN 原文:https://blog.csdn.ne...

1732
来自专栏编程微刊

解决eclipse端口被占用的问题

这是因为在tomcat开启的状态下,eclipse异常关闭,导致tomcat一直占用端口。 解决办法如下:

961
来自专栏Laoqi's Linux运维专列

自动化监控Zabbix之主机自动发现

1893

扫码关注云+社区

领取腾讯云代金券