如何获得服务器的响应时间?

时间:2014-02-23 20:20:18

标签: ruby

如何使用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 / 120ms的响应。

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

2 个答案:

答案 0 :(得分:2)

您实施的内容未显示服务器响应时间,它显示:

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

如果您只需要查看服务器处理请求所花费的时间,您需要以其他方式执行此操作。您可以使用HTTP response headers。特别是日期标题可以帮助您。

答案 1 :(得分:0)

Ruby代码包含在您的代码版本中,@xlembouras表示。

我建议您使用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?