import time;start =time.time();print time.time()-start = 8.60691070557e-05

2015-02-12 16:24:10 +08:00
 jamiesun
2995 次点击
所在节点    Python
10 条回复
jamiesun
2015-02-12 16:56:17 +08:00
隐式转换的坑,用 "%.6f"%(time.time()-end)
binux
2015-02-12 17:06:59 +08:00
你说什么?
zhyu
2015-02-12 17:11:49 +08:00
不懂 lz 想表达什么
有求时间差的需求,不用 datetime.timedelta 么
fortunezhang
2015-02-12 19:48:24 +08:00
import time
start = time.clock()
do something...
end = time.clock()
print(end-start)
jamiesun
2015-02-12 22:54:21 +08:00
@fortunezhang

这个不行,不是clock与time的问题,而是end-start被自动转换为科学计数,在函数执行几乎无间隔的情况下发生,比如函数直接return,这种情况就会出现了个很大的数字。

所以用"%.6f"%(time.time()-end) 转换下就好了

@zhyu 我是计算函数执行时间,timedelta不适用。
hahastudio
2015-02-12 23:01:22 +08:00
1. 性能分析有 timeit 和 profile
2. python 里 call function 是一个很有代价的操作
fortunezhang
2015-02-13 08:50:06 +08:00
@jamiesun 如果你相求函数或者其他程序运行时间,这个就可以,我一般用这个。否则,可能不行。
zhyu
2015-02-13 09:00:09 +08:00
@jamiesun 计算函数执行时间用 timeit
jamiesun
2015-02-13 14:38:15 +08:00
@zhyu 但是我是在web运行期间执行,应用有状态
jamiesun
2015-02-14 15:47:57 +08:00
谢谢各位,最后还是回到profile

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/170500

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX