要解决PHP的卡顿问题,先找到哪部分代码导致问题出现。
xhprof可以帮到你: http://pecl.php.net/package/xhprof ,虽然已经4年没更新了。。
首先安装: 万能的yum, yum install php-xhprof -y
安装完php模块后,需要在你要分析的网站中加入代码,实际上是图形界面代码,方便查看。
下载 http://pecl.php.net/get/xhprof-0.9.4.tgz ,解压其中的xhprof-0.9.4文件夹到你要分析的网站目录,假设为/srv/www/website/xhprof-0.9.4
,记住这个路径,下一步要用到
后重启php/lighttpd,并在要分析的文件(例如index.php)中植入代码:
1 2 3 4 5 6 7 8 9 |
xhprof_enable(); register_shutdown_function(function() { $xhprofData = xhprof_disable();// $xhprofData是数组形式的分析结果 $xhprof_root = '/srv/www/website/xhprof-0.9.4'; //刚刚的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(); $run_id = $xhprof_runs->save_run($xhprofData, "xhprof"); }); |
这段代码的大概意思是启用分析,并且在程序结束时绑定一个记录逻辑。
完成后直接访问你要分析的php文件。
打开 你的域名/xhprof-0.9.4/xhprof_html
,你的访问会被记录在里面,点开逐层查看卡顿(消耗时间多)的逻辑即可!
该工具还可以生成图片,点击界面上的“[View Full Callgraph]”可以看整个php文件的引用,大型系统慎点。
若提示“failed to execute cmd….” 需要安装graphviz: yum install graphviz