Linux环境下面安装PHP性能分析工具XHProf(PHP5.6)

简介: Linux环境下面安装PHP性能分析工具XHProf(PHP5.6)


安装XHProf

1. 安装PHP扩展,XHProf的官方下载地址为http://pecl.php.net/package/xhprof,默认的PHP没有自带这个扩展,所以要进行安装。


wget http://pecl.php.net/get/xhprof-0.9.3.tgz #获取安装包

tar zxf xhprof-0.9.3.tgz  #解压安装包

cd xhprof-0.9.3  #进入文件夹

cp -r xhprof_html xhprof_lib /data/xhprof #根据具体情况进行拷贝

cd extension

phpize  #phpize侦测PHP安装环境

./configure

make

make install

备注:xhprof_html中存放分析结果项目,用来展示性能分析,需要将文件夹放到apache的项目目录下面才能运行访问 ;xhprof_lib作为三方库,用于引入到PHP项目中。


2. 配置php.ini支持XHProf,如果不知道php.ini在哪里,可以使用命令find / -name 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=/data/xhprof/logs #根据实际情况进行配置

配置成功后,重启apache,使用service apache restart 或者service httpd restart等相关命令,如果phpinfo()出现如下页面,表示安装成功。




3. 安装Graphviz,安装Graphviz的目的是为了xhprof图形化web工具查看profiling log文件。


方式1:


wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz

tar zxf graphviz-2.24.0.tar.gz

cd graphviz-2.24.0

./configure

make

make install

如果找不到对应的资源可以使用这个链接https://graphviz.gitlab.io/pub/graphviz/stable/SOURCES/graphviz.tar.gz


方式2:使用命令 yum install graphviz 直接安装。


4. 安装libpng(可能需要的步骤)


编译graphviz提示信息png: No (missing png.h),也就是dot 不支持PNG,此时需要安装libpng包。


wget http://nchc.dl.sourceforge.net/project/libpng/libpng15/1.5.1/libpng-1.5.1.tar.gz

tar zxf libpng-1.5.1.tar.gz

cd libpng-1.5.1

./configure

make

make install

或者使用命令yum install libpng直接进行安装。


开始进行性能分析

1. 创建一个文件test.php,然后按照下面的模式进行编码。


<?php


// start profiling

xhprof_enable();

// xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); // 允许CPU和内存输出

// run program

....

// stop profiler

$xhprof_data = xhprof_disable();

//

// Saving the XHProf run

// using the default implementation of iXHProfRuns.

//

$XHPROF_ROOT = "/projects/xhprof";//这里填写的就是你的xhprof的路径

include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";

include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

 

$xhprof_runs = new XHProfRuns_Default();

 

// Save the run under a namespace "xhprof_foo".

//

// **NOTE**:

// By default save_run() will automatically generate a unique

// run id for you. [You can override that behavior by passing

// a run id (optional arg) to the save_run() method instead.]

//

$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");

 

echo "---------------\n".

"Assuming you have set up the http based UI for \n".

"XHProf at some address, you can view run at \n".

"http://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo\n".

"---------------\n";


?>

2. 查看分析报告


在浏览器中访问该页面后,会在/data/xhprof/logs这个目录下面生成一个.xhprof_foo结尾的文件,然后会在页面上显示http://<xhprof-ui-address>/index.php?run=49bafaa3a3f66&source=xhprof_foo 这句代码,然后访问上面说到的展示目录http://xxx/xhprof_html/index.php?run=49bafaa3a3f66&source=xhprof_foo就可以看到内容了。




3. 查看函数调用图,然后点击[View Full Callgraph],就可以看到详细的函数调用过程。




问题总结

1.  编译XHProf扩展不通过,由于之前使用的xhprof-0.9.2版本,这个版本是09年的,比较老,换成xhprof-0.9.3就可以编译通过了。


2. 放在PHP里面后,出现了报错,将启动改为下面的代码就好了。


xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

3. 点击[View Full Callgraph]出现了。以为是没有安装好graphviz,结果是由于没有找到日志文件,请仔细读懂下面语句的意思。


Error: either we can not find profile data for run_id 4d7f0bd99a12f or the threshold 0.01 is too small or you do not have ‘dot’ image generation utility installed.

4. 由于安装了两个版本的graphviz,手动安装的版本没有安装好png支持,老是出现不支持png的提示,然后卸载掉这个手动版本就可以了,具体做法是cd到安装目录,执行make uninstall。


附录

XHProf报告字段含义:




附加一篇:给CentOS6.3 + PHP5.3 安装PHP性能测试工具 XHProf-0.9.2 给CentOS6.3 + PHP5.3 安装PHP性能测试工具 XHProf-0.9.2_看世界-Neilson的博客-CSDN博客


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
16天前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
184 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
12天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
6天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
69 17
|
2月前
|
Java 程序员 PHP
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
53 3
01 入门PHP就来我这-安装phpstudy
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
46 4
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
140 3
|
2月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
60 3
|
安全 Linux 测试技术
配置Goby工具环境(win,linux,macOS)
配置Goby工具环境(win,linux,macOS)
854 2

热门文章

最新文章