如何获得服务器的响应时间?
Posted
技术标签:
【中文标题】如何获得服务器的响应时间?【英文标题】: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 定义“服务器响应时间”。 【参考方案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_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?
【讨论】:
【参考方案2】:你实现的没有显示服务器响应时间,它显示:
在 ruby 中发送请求所花费的时间 请求的网络时间 服务器的响应时间 响应的网络时间 在 ruby 中处理响应所花费的时间如果您只需要查看服务器处理请求所花费的时间,则需要以另一种方式进行。您可以使用HTTP
response headers。特别是日期标题可以帮助您。
【讨论】:
以上是关于如何获得服务器的响应时间?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 NSURLSessionDownloadTask downloadTaskWithRequest 获得响应
如何使用 JSON 格式解析通过 AFNetworking 1.0 获得的响应