【问题标题】:ApacheBench is very slowApacheBench 很慢
【发布时间】:2012-02-20 05:11:08
【问题描述】:

我使用 Slim 和 Silex 微框架创建了两个基准页面,然后测试了它们的速度。

Chrome 开发者工具结果:

超薄:7 毫秒

Silex:16 毫秒

ApacheBench 结果:

# Slim
$ ab -n 1 -c 1 'http://localhost/webapps/FrameworksBenchmarking/Slim/data/123'
> 5.008 seconds

# Silex
ab -n 1 -c 1 'http://localhost/webapps/FrameworksBenchmarking/Silex/data/123'
> 0.001 seconds

我不明白是什么让ab 对 Slim 这么慢。关于这个问题有什么想法吗?

PS 如您所见,在浏览器中请求页面没有问题。此外,curl 的速度也很快。

【问题讨论】:

  • 设置profiler并找出答案
  • 这是由 Response 对象中的header("HTTP/1.1 200 OK"); 引起的。奇怪...
  • 不知道为什么你被否决了,我也看到了这个。很奇怪。
  • @Roman 为什么说是header造成的?
  • 已编辑:根据这篇文章,我在一个由我编写的自定义 PHP 的页面上进行了尝试。在 Chrome 中,大约需要 12 毫秒,而在 apachebench 中,大约需要 3.325 毫秒。任何人都可以解释吗?或者任何人都可以建议一种方法来帮助我深入研究这个因为我是这个东西的新手。

标签: php benchmarking slim apachebench silex


【解决方案1】:

您使用 PHP 加速器吗?在进行基准测试之前,您是否已预热所有内容? -n 1 -c 1 似乎不足以提供任何准确的统计数据。尝试增加重复次数。

【讨论】:

  • 是的,我使用 APC。 -n 1 -c 1 足够准确,因为我多次运行它并将这些参数更改为更大的值会使其更慢。
【解决方案2】:

尝试将Slim App的HTTP版本设置为1.0:

$app = new \Slim\App(['settings' => ['httpVersion'=>'1.0']]);

似乎 ab test 的 PHP 标头代码有错误:

<?php
header("HTTP/1.1 200 OK");
exit;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2011-03-08
    • 2013-02-23
    • 2015-12-24
    • 2020-10-23
    相关资源
    最近更新 更多