如何使用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的响应。
这是计算此服务器响应时间的最佳方法吗?
答案 0 :(得分:2)
您实施的内容未显示服务器响应时间,它显示:
如果您只需要查看服务器处理请求所花费的时间,您需要以其他方式执行此操作。您可以使用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_namelookup
,time_connect
,time_starttransfer
,time_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?