【问题标题】:How do I get a server's response time?如何获得服务器的响应时间?
【发布时间】:2014-03-25 07:15:01
【问题描述】:

如何使用 ruby​​ 获得服务器响应时间?

我使用Net::HTTP.get_response(URI.parse(url)) 对URL 的响应代码和响应时间。其实我的代码是:

start_time = Time.now
@req = Net::HTTP.get_response(URI.parse(url))
end_time = (Time.now - start_time) * 1000
puts ("%.2f" % end_time + "ms")

运行良好,但响应时间太长,例如:Twitter.com (630.52ms)。如果我尝试 ping twitter.com,我会得到 70/120 毫秒的响应。

这是计算此服务器响应时间的最佳方法吗?

【问题讨论】:

  • 你能提供一个SSCCE吗?你很亲密。 sscce.org
  • 定义“服务器响应时间”。

标签: ruby


【解决方案1】:

正如@xlembouras 所说,Ruby 计时包含在您的代码版本中。

我建议您使用 curl 来查找您要查找的内容:

response_time_total = `curl -w \"%{time_total}\" google.com -o /dev/null -s`

你可以在终端试试:

curl -w \"%{time_total}\n\" google.com -o /dev/null -s

您可以获得不同的指标,例如time_namelookuptime_connecttime_starttransfertime_redirect 等。示例:

response_times = `curl -w \"%{time_connect}:%{time_starttransfer}:%{time_total}\" google.com -o /dev/null -s`
time_connect, time_starttransfer, time_total = response_times.split(':')

所有可用的指标和详细信息都可以在the cURL manpage找到

参考

How do I measure request and response times at once using cURL?

【讨论】:

    【解决方案2】:

    你实现的没有显示服务器响应时间,它显示:

    • 在 ruby​​ 中发送请求所花费的时间
    • 请求的网络时间
    • 服务器的响应时间
    • 响应的网络时间
    • 在 ruby​​ 中处理响应所花费的时间

    如果您只需要查看服务器处理请求所花费的时间,则需要以另一种方式进行。您可以使用HTTPresponse headers。特别是日期标题可以帮助您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 2021-09-03
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      相关资源
      最近更新 更多