php版本:php7


xhprof:

xhprof是php5.*下很好的性能测试工具,配合xhprof_html能够图形显示测试结果,基本够用,

但已经没人维护了。

tideways:

在php7下,xhprof不再兼容,于是有个tideways,基于xhprof开发,它是收费的。

安装后模块名是tideways,用php –re tideways可以看到很多ini配置,参数和方法,

此模块很强大,有很多方法和配置用来连接官方服务器,用于收费用户的后台显示管理。

同样,也可以配合xhprof_html显示结果,也有自己的一套图形。

tideways_xhprof:

它有个开源分支,tideways_xhprof,是免费的,和tideways不同的是,它主要是为了兼容xhprof,

没有官方那么多配置,安装后模块名是tideways_xhprof,方法也就两个,tideways_xhprof_enable()和

tideways_xhprof_disable(),图形显示和tideways相同。

这是一个使用demo:

<?php

//这个require是用与cli下执行php脚本,用xhgui显示。
//require_once '/home/liuxuzzz/bin/xhgui-branch/external/header.php';

tideways_xhprof_enable(TIDEWAYS_XHPROF_FLAGS_MEMORY | TIDEWAYS_XHPROF_FLAGS_MEMORY_MU | TIDEWAYS_XHPROF_FLAGS_MEMORY_PMU | TIDEWAYS_XHPROF_FLAGS_CPU | TIDEWAYS_XHPROF_FLAGS_NO_BUILTINS);

function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$sec + (float)$usec);
}
$start_time = microtime_float();
sleep(1);
$end_time = microtime_float();

$data = tideways_xhprof_disable();

require '/home/liuxuzzz/bin/xhprof/xhprof_lib/utils/xhprof_lib.php';
require '/home/liuxuzzz/bin/xhprof/xhprof_lib/utils/xhprof_runs.php';
// 注意此处的"/tmp",因为如果没有此参数,XHProfRuns_Default()会使用xhprof.output_dir参数,
// 但是xhprof我没有安装,所以配置了没用,导致执行会报warning
$xhprofRuns = new XHProfRuns_Default("/tmp");
$runId = $xhprofRuns->save_run($data, 'xhprof_test');
echo 'http://localhost/xhprof/index.php?run=' . $runId . '&source=xhprof_test' . "\n";

xdebug:

老牌测试工具,很好用,测试环境用这个很方便,但线上用这个性能就太耗了。