PHP性能调优,PHP慢日志---PHP脚本执行效率性能检测之WebGrind的使用
2017-09-03 19:13
441 查看
如何一睹webgrind这个神奇的php性能检测工具神奇呢?
废话不多说首先webgrind这个性能检测是需要xdebug来配合,因为webgrind 进行性能检测分析就是通过xdebug生成的日志文件进行编译分析的
那么这就需要们配置好xdebug,这个一般的php 版本都已经有这个扩展了,因为他很大众化,如你不知道,你需要多学喽,
如何开启呢? 和php大部分扩展一样需要在ini文件中 引入扩展,同时配置开启xdebug即可,即 把所有的off 搞成on 然后 指定 xdebug日志文件的存放位置
然后去重启你的httpd
phpinfo中看到的xdebug是开启状态即可
OK以上咱们已经xdebug配置OK了,那么晚webgrind的时候终于来到了激动不已噢~
下载一个webgrind包即可,我个人云盘中搜索webgrind下载即可
然后放到 localhost的默认的站点目录下解压缩,然后这是就这么神奇webgrind就会自动去检测xdebug生成的那些 webgrind认识的文件喽
这是 我在 www目录也就是我的localhost 默认的站点目录下写了一个这样的脚本:
xdebug.php
<?php
/**
** @jiaoben 此脚本是xdebug 配合 webgrind 性能测试的脚本程序
** @desc 用来测试性能
**
*/
function orders(){
$fid = $_GET['fid'];
@$link = mysql_connect("127.0.0.1",'root',"") or die('connect mysqlserver is fail');
mysql_select_db("xxx",$link) or die("connect database is fail");
$sql ="select a.aa,c.bb,c.cc,d.dd,d.ee,d.time gotime,e.ff,count(g.zzid) buynum from ky_order a left join user c on a.aa=c.aa left join shu d on a.shuttleId=d.id left join bus e on a.aid=e.uid left join childOrd f on a.orderId = f.union_orderId left join childOrdDetail g on f.cid= g.ucidwhere a.fid='".$fid."' and a.psta=1 group by a.oid order by a.sid asc";
$sql_1 ="select* from ky_order a left join user c on a.aa=c.aa left join shu d on a.shuttleId=d.id left join bus e on a.aid=e.uid left join childOrd
f on a.orderId = f.union_orderId left join childOrdDetail g on f.cid= g.ucidwhere a.fid='".$fid."' and a.psta=1 group by a.oid order by a.sid asc";
$res_a = mysql_query($sql);
while($row = mysql_fetch_assoc($res_a)){
$rows[] = $row;
}
var_dump($rows);
}
orders();
?>
很明显看到我里面有两个sql语句,区别就是 第一个 写出了我具体要的字段,第二个 * 号查询表中所有字段
这是 localhost/xdebug.php 浏览器中执行完毕后,会发现 xdebug这个神奇的扩展,将你此次编译php脚本的过程 做了一个日志文件
放到了你指定的目录下我的 目录在wamp\tmp\xdebug
你会发现目录下生成一些类似这个东东的样子的文件 : cachegrind.out.1464941130.2696
好了此时我们来到 localhost/webgrind 浏览器中走
第一个sql 跑后的一个性能检测如下
然后我们 注释了$sql那行,打开 $sql_1那个SQL语句 跑一下,然后 在webgrind中切换到新生成的xdebug日志,然后update 看一下如下图
看了之后,偶买噶的,是不是神奇的时间差看的出来了?就这种思想方式去 玩吧,找出你的站中哪里还待你去优化
行动吧
转:
/Uploads/Images/Content/201709/03/943679ef6a5ee16d55532238c5a5c979
废话不多说首先webgrind这个性能检测是需要xdebug来配合,因为webgrind 进行性能检测分析就是通过xdebug生成的日志文件进行编译分析的
那么这就需要们配置好xdebug,这个一般的php 版本都已经有这个扩展了,因为他很大众化,如你不知道,你需要多学喽,
如何开启呢? 和php大部分扩展一样需要在ini文件中 引入扩展,同时配置开启xdebug即可,即 把所有的off 搞成on 然后 指定 xdebug日志文件的存放位置
然后去重启你的httpd
phpinfo中看到的xdebug是开启状态即可
OK以上咱们已经xdebug配置OK了,那么晚webgrind的时候终于来到了激动不已噢~
下载一个webgrind包即可,我个人云盘中搜索webgrind下载即可
然后放到 localhost的默认的站点目录下解压缩,然后这是就这么神奇webgrind就会自动去检测xdebug生成的那些 webgrind认识的文件喽
这是 我在 www目录也就是我的localhost 默认的站点目录下写了一个这样的脚本:
xdebug.php
<?php
/**
** @jiaoben 此脚本是xdebug 配合 webgrind 性能测试的脚本程序
** @desc 用来测试性能
**
*/
function orders(){
$fid = $_GET['fid'];
@$link = mysql_connect("127.0.0.1",'root',"") or die('connect mysqlserver is fail');
mysql_select_db("xxx",$link) or die("connect database is fail");
$sql ="select a.aa,c.bb,c.cc,d.dd,d.ee,d.time gotime,e.ff,count(g.zzid) buynum from ky_order a left join user c on a.aa=c.aa left join shu d on a.shuttleId=d.id left join bus e on a.aid=e.uid left join childOrd f on a.orderId = f.union_orderId left join childOrdDetail g on f.cid= g.ucidwhere a.fid='".$fid."' and a.psta=1 group by a.oid order by a.sid asc";
$sql_1 ="select* from ky_order a left join user c on a.aa=c.aa left join shu d on a.shuttleId=d.id left join bus e on a.aid=e.uid left join childOrd
f on a.orderId = f.union_orderId left join childOrdDetail g on f.cid= g.ucidwhere a.fid='".$fid."' and a.psta=1 group by a.oid order by a.sid asc";
$res_a = mysql_query($sql);
while($row = mysql_fetch_assoc($res_a)){
$rows[] = $row;
}
var_dump($rows);
}
orders();
?>
很明显看到我里面有两个sql语句,区别就是 第一个 写出了我具体要的字段,第二个 * 号查询表中所有字段
这是 localhost/xdebug.php 浏览器中执行完毕后,会发现 xdebug这个神奇的扩展,将你此次编译php脚本的过程 做了一个日志文件
放到了你指定的目录下我的 目录在wamp\tmp\xdebug
你会发现目录下生成一些类似这个东东的样子的文件 : cachegrind.out.1464941130.2696
好了此时我们来到 localhost/webgrind 浏览器中走
第一个sql 跑后的一个性能检测如下
然后我们 注释了$sql那行,打开 $sql_1那个SQL语句 跑一下,然后 在webgrind中切换到新生成的xdebug日志,然后update 看一下如下图
看了之后,偶买噶的,是不是神奇的时间差看的出来了?就这种思想方式去 玩吧,找出你的站中哪里还待你去优化
行动吧
转:
/Uploads/Images/Content/201709/03/943679ef6a5ee16d55532238c5a5c979
相关文章推荐
- PHP脚本执行效率性能检测之WebGrind的使用
- PHP性能调优---php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)
- PHP性能调优,PHP慢日志---善用php-fpm的慢执行日志slow log,分析php性能问题
- php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)
- nginx php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)
- php-fpm中启用慢日志配置以检测执行较慢的PHP脚本
- nginx php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)
- 让浏览器提高缓存效率,使用HTTP_IF_MODIFIED_SINCE缓存提高PHPWEB性能
- tuning-primer.sh脚本性能调优的使用
- linux中使用crontab定时执行程序(PHP脚本.sh等等各种)
- 使用Junit4从测试场景的准备优化测试脚本的执行效率
- 使用php作linux自动执行脚本(呵呵,超级好用的功能)
- PHP脚本执行效率及mysql查询效率
- PHP各种引入(读取)文件函数的执行效率include require fpassthru readfile等的性能比较
- PHP计划任务:如何使用Linux的Crontab执行PHP脚本
- 善用php-fpm的慢执行日志slow log分析PHP执行效率和程序BUG
- PHP计划任务:如何使用Linux的Crontab执行PHP脚本
- windows下使用PHP实现定时执行脚本
- 在centos下使用crontab执行PHP定时脚本
- PHP使用Yii框架写一个不间断执行的脚本