要解决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)中植入代码:

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