php xingnengfenxi_php 性能分析工具 xhprof 使用

1. 环境

CentOS 7

nginx 1.14

php 5.6

2. xhprof 版本

xhprof-0.9.4

图形展示依赖:

graphviz

graphviz-gd

libpng

3. 安装 xhprof

下载 xhprof-0.9.4.tgz

tar xvzf xhprof-0.9.4.tgz

cd xhprof-0.9.4/extension

执行 /usr/local/php-fpm/bin/phpize

./configure --with-php-config=/usr/local/php-fpm/php-config

make && make install

然后,在 php.ini 中添加 xhprof.so

vim /usr/local/php-fpm/etc/php.ini

添加:

[xhprof]

extension=xhprof.so

xhprof.output_dir="/data/wwwroot/xhprof/output"

记得要创建 xhprof.output_dir 目录,给777 权限;

简单测试:

重启一下 php-fpm: /etc/init.d/php-fpm restart ;

测试一下 xhprof.so 是否加载成功:

/usr/local/php-fpm/bin/php -m | grep xhprof

4. 为 xhprof 添加 nginx 虚拟机

在 nginx 虚拟机目录增加一个 server:

server {

listen 80;

server_name xhprof.dev;

root /data/wwwroot/xhprof;

index index.php index.html;

access_log /data/logs/nginx/xhprof/xhprof.dev.log custom;

error_log /data/logs/nginx/xhprof/xhprof.dev.log.err error;

rewrite_log on;

location ~* \.php$ {

#fastcgi_pass 127.0.0.1:9000;

fastcgi_pass unix:/usr/local/php-fpm/run/php-fpm-www.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

注意:

server_name 根据实际情况;

root 根据实际情况;

创建日志文件路径;

fastcgi_pass 根据实际情况而定;

5. 测试 xhprof web

将 xhprof-0.9.4 目录下 xhprof_html 和 xhprof_lib 两个目录移动或者复制到 web 的 root 路径 /data/wwwroot/xhprof :

cp -r /usr/local/src/xhprof-0.9.4/xhprof_html /data/wwwroot/xhprof/xhprof_html

cp -r /usr/local/src/xhprof-0.9.4/xhprof_lib /data/wwwroot/xhprof/xhprof_lib

创建 xhprof 测试文件

cd /data/wwwroot/xhprof/

vim test.php

//加载所需文件

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

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

//随意定义一个函数

function test($max)

{

for ($idx = 0; $idx < $max; $idx++) {

echo '';

}

}

//定义测试方法

function a()

{

test(rand(1000,5000));

}

//开始分析

xhprof_enable();

//需要分析的函数

a();

//结束分析

$xhprof_data = xhprof_disable();

//实例化xhprof类

$xhprof_runs = new XHProfRuns_Default();

//获取当前当前页面分析结果

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

echo "\nhttp://xhprof.dev/xhprof_html/index.php?run=$run_id&source=xhprof_foo\n";

可以看到,返回了一个带run_id 的 url,通过这个 url 再跳转访问就可以看到具体的测试结果了:

如果想查看图像,可以点击 [View Full Callgraph] :

注意:

一般,大家安装完之后,系统还不能马上画图,一般会报错:

Format: "png" not recognized. Use one of: canon cmap cmapx cmapx_np dot dot_json eps fig gv imap imap_np ismap json json0 mp pic plain plain-ext pov ps ps2 svg svgz tk vml vmlz xdot xdot1.2 xdot1.4 xdot_json

解决办法:

需要安装一些依赖的工具

yum install graphviz

yum install libpng

yum install graphviz-gd (刚开始我没有安装这个,总是报错)

6. 总结

以上的内容只是简单安装使用 xhprof 工具,要真正用来测试 php 的性能,还需要再 php 代码中使用,如何添加结合,以后再研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值