我尝试对App Engine flex应用中的延迟问题进行故障排除,我怀疑我的服务器花费的时间太长了(Chrome提供的TTFB超过20秒)。
因此,我使用time.clock()
(Python2.7)来查看时间。我还使用print
将这些值放入Stackdriver。
不同的时间根本不一致。
这就是离开之前的时刻。
我计算出的经过时间不过是结束时间-开始时间(每个调用time.clock()
一次)。
您可以看到它不到一秒钟。堆栈驱动程序日志显示耗时将近4秒钟。
有人知道为什么会有这种区别吗? time.clock()
在App引擎flex上无法正常工作?
谢谢
答案 0 :(得分:1)
time.clock()
为您提供了进程的CPU时间,这就是为什么值不一致的原因。
我做了这个测试:
@app.route('/')
def hello():
"""Return a friendly HTTP greeting."""
tc0 = time.clock()
print(tc0)
tt0 = time.time()
print(tt0)
x= datetime.datetime.now()
print(x)
time.sleep(10)
tc1 = time.clock()
print(tc1)
tt1 = time.time()
print(tt1)
y = datetime.datetime.now()
print(y)
return 'Hello World!'
这是结果:
tc0 0.144582
tt0 1552994288.7333689
x 2019-03-19 11:18:08.733498
tc1 0.144829
tt1 1552994298.7438576
y 2019-03-19 11:18:18.743877
如您所见,您想要使用的是time.time()
或datetime.datetime.now()
来获取代码在给定部分中所花费的实时时间,因为time.clock()
为您提供了充足的CPU资源时间。