简单的Linux工具,用于以毫秒为单位计时http请求


12

我正在寻找一个简单的工具或内置命令,该工具或命令将使我能够精确地测量从给定URL提取远程网页所花费的时间。

Answers:


12

这是您要找的吗?

time wget http://example.com

这将包括启动和运行wget所需的时间,该时间可能比服务器的响应时间长得多。
保罗·林奇

@PaulLynch:我做了一个简单的测试。我在一个终端跑这样的:rm foo; touch foo; python -m SimpleHTTPServer和在另一:time wget --quiet --output-document=/dev/null localhost:8000/foo,结果为2毫秒。我wget对google.com(检索约1万个字符)进行了同样的处理,并获得了大约四分之一秒的时间。因此,在这种情况下,我们将启动/运行时间称为1%。然后,为了进行比较,我做到time curl file://foo了大约4毫秒。
暂停,直到另行通知。

对于http请求,看来您是对的,对于我来说,它的速度仅下降了2毫秒。我试图获取一个https URL。为此,Chrome大约10毫秒(而不是“来自缓存”)返回的请求的wget大约慢25毫秒。wget和Chrome都与Web服务器在同一台计算机上运行,​​并将其寻址为“ localhost”,因此我将时间差归咎于wget。
保罗·林奇

7

Httping会做到这一点。

Httping类似于“ ping”,但用于http请求。给它一个URL,它将向您显示连接,发送请求和检索答复所花的时间(仅标头)。请注意,跨网络传输也需要时间!因此,它可以测量Web服务器+网络的延迟。


3

Wireshark将让您详细检查传输。您可以按照Dennis的建议,查看下载单个文件所需的时间,或者如果在Web浏览器中打开URL,则可以查看加载所有相关文件(图像,脚本等)所需的时间。


2

你可以按照这个答案卷曲

创建一个新文件curl-format.txt,然后粘贴:

    time_namelookup:  %{time_namelookup}\n
       time_connect:  %{time_connect}\n
    time_appconnect:  %{time_appconnect}\n
   time_pretransfer:  %{time_pretransfer}\n
      time_redirect:  %{time_redirect}\n
 time_starttransfer:  %{time_starttransfer}\n
                    ----------\n
         time_total:  %{time_total}\n

然后像这样运行curl:

curl -w "@curl-format.txt" -o /dev/null -s "http://wordpress.com/"

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.