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

Python 这是测量往返时间的正确方法吗?,python,performance,web,cdn,python-requests,Python,Performance,Web,Cdn,Python Requests,我需要比较几个CDN服务,所以我编写了一个简短的python脚本,反复向部署在这些CDN上的资源发送get请求,并记录往返时间。我在不同城市的几台电脑上运行脚本。 我就是这样做的: t0 = time.clock() r = requests.get(test_cdn_url) t1 = time.clock() roundtrip = t1-t0 # in seconds 对于大多数请求,往返时间在1秒以内:200-500毫秒,但偶尔,它会报告几秒钟内完成的请求:3-5秒,一次9秒 是这样,

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

t0 = time.clock()
r = requests.get(test_cdn_url)
t1 = time.clock()
roundtrip = t1-t0 # in seconds
对于大多数请求,往返时间在1秒以内:200-500毫秒,但偶尔,它会报告几秒钟内完成的请求:3-5秒,一次9秒

是这样,还是我使用了错误的工具来测量?换句话说,请求库是否执行了某些缓存操作或某些重量级操作,从而使度量完全错误?

如果您担心请求正在执行任何重量级或缓存操作,您可以始终使用urllib:

或者,如果您在请求中包含一个Cache控件:no Cache header,那么这将确保在此过程中不会发生缓存-并且您的原始代码应该有效地为请求计时。

如果您担心请求正在进行任何重量或缓存,您可以始终使用urllib:

或者,如果您在请求中包含一个Cache控件:no Cache header,那么这将确保在此过程中不会发生缓存,并且您的原始代码将有效地为请求计时。

响应对象提供一个属性:

发送请求和到达之间经过的时间量 响应的时间增量

您的代码将如下所示:

r = requests.get(test_cdn_url)
roundtrip = r.elapsed.total_seconds()
响应对象提供了一个属性:

发送请求和到达之间经过的时间量 响应的时间增量

您的代码将如下所示:

r = requests.get(test_cdn_url)
roundtrip = r.elapsed.total_seconds()

不会添加答案,因为我不确定您的度量是否错误,但我会使用该模块。Python代码中的分号不需要,并且会降低代码的可读性。@StevenRumbalski您是对的,旧习惯难以改变:不会添加答案,因为我不确定您的度量是否错误,但是我会使用这个模块。Python代码中的分号是不需要的,它会降低代码的可读性。@StevenRumbalski你是对的,旧习惯很难改变: