首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是测量往返时间的正确方法吗?

这是测量往返时间的正确方法吗?
EN

Stack Overflow用户
提问于 2014-04-09 15:14:06
回答 2查看 3.4K关注 0票数 1

我需要比较几个CDN服务,所以我编写了一个简短的python脚本,反复向部署在这些CDN上的资源发送get请求,并记录往返时间。我在不同城市的几台电脑上运行脚本。我就是这样做的:

代码语言:javascript
复制
t0 = time.clock()
r = requests.get(test_cdn_url)
t1 = time.clock()
roundtrip = t1-t0 # in seconds

对于大多数请求,往返时间为1秒:200-500 is,但有时它报告的请求在几秒钟内完成: 3-5秒,一次9秒。

这只是它的方式,还是我使用错误的工具来测量?换句话说,请求库是否做了一些使度量完全错误的事情(缓存或一些重量级操作)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-09 15:29:27

Response对象提供了一个elapsed属性:

从发送请求到响应到达之间所用的时间(作为时间增量)。

然后,您的代码将类似于:

代码语言:javascript
复制
r = requests.get(test_cdn_url)
roundtrip = r.elapsed.total_seconds()
票数 4
EN

Stack Overflow用户

发布于 2014-04-09 15:22:45

如果您担心requests正在做任何繁重的事情(或缓存),您可以始终使用urllib

代码语言:javascript
复制
nf = urllib.urlopen(url)
t0 = time.time()
page = nf.read()
t1 = time.time()
nf.close()

roundtrip = t1 - t0

或者,如果您在请求中包含了一个Cache-Control: no-cache头,那么这将确保在此过程中不会发生缓存--您的原始代码应该能够有效地计时请求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22966876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档