对PHP页面加载时间进行基准测试

Ana*_*ant 17 php benchmarking

我怎样才能测量加载页面所需的时间(使用各种不同的PHP语句)?

有点像这里的统计数据 - http://talks.php.net/show/drupal08/24

St.*_*son 43

有很多方法可以做到这一点.我个人一直喜欢以下列方式使用microtime:

// Start of code
$time = microtime(true); // Gets microseconds

// Rest of code

// End of code
echo "Time Elapsed: ".(microtime(true) - $time)."s";
Run Code Online (Sandbox Code Playgroud)

这将为您提供微秒精度.

如果您正在编写命令行脚本(如Facebook谜题),您可以使用时间.

time php dancebattle.php ~/input.dat
Win

real    0m0.152s
user    0m0.142s
sys     0m0.012s
Run Code Online (Sandbox Code Playgroud)

我忘记了监控页面加载时间的方法(来自浏览器).您可以使用Firebug(适用于Firefox)的NET选项卡来执行此操作.它将让您观看各种文件加载(AJAX,JS,CSS,图像等).


Pas*_*TIN 11

最简单的是Apache Bench (被称为ab),它随Apache提供:

  • 这是一个命令行工具
  • 这可以并行发送许多请求和URL
  • 并报告时间,错误,......

似乎适合幻灯片上显示的那种非常简单的报告.
(它确实报告的不止于此)


如果您的需求更复杂,Siege可能是一个不错的选择.

Siege的一个有趣的事情是它可以从文件中获取一个URL列表,而不是只使用一个.


这些工具的一个有趣之处在于,您不仅仅测量执行特定代码部分所花费的时间(就像您microtime在PHP代码中直接使用那样),但是您需要花费整个时间来提供服务.页.

此外,它可以不只是PHP代码进行基准测试,因为它正在处理HTTP请求,而不是代码本身.


Mar*_*man 9

  $ time curl http://www.example.com/
Run Code Online (Sandbox Code Playgroud)

请注意,它会占用整个请求,包括网络延迟.但那可能是你想要的吗?