timeit 怎么理解输出的时间?

发布于 2022-09-07 19:39:41 字数 1085 浏览 29 评论 0

timeit的文档中,有这个例子代码

$ python3 -m timeit '"-".join(str(n) for n in range(100))'
10000 loops, best of 3: 30.2 usec per loop
$ python3 -m timeit '"-".join([str(n) for n in range(100)])'
10000 loops, best of 3: 27.5 usec per loop
$ python3 -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 3: 23.2 usec per loop

其中,10000 loops, best of 3: 30.2 usec per loop10000 loop是怎么来的?

>>> import timeit
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.3018611848820001
>>> timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
0.2727368790656328
>>> timeit.timeit('"-".join(map(str, range(100)))', number=10000)
0.23702679807320237

从上面的代码中我知道了比如第一个例子,我知道总共花了0.301秒,因此,有301861微秒(usec),总共有10000次运行"-".join(str(n) for n in range(100)),因此每一个loop花费约30.18微秒(usec)。

timeit的命令行默认是10000次的loop吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧伤慢歌 2022-09-14 19:39:41

文档上这么举例的:

$ python -m timeit -s 'text = "sample string"; char = "g"'  'char in text'
10000000 loops, best of 3: 0.0877 usec per loop
$ python -m timeit -s 'text = "sample string"; char = "g"'  'text.find(char)'
1000000 loops, best of 3: 0.342 usec per loop

也就是说,通过命令行方式执行,timeit是自动判断该循环多少次,我想应该是单次耗时越短,执行次数就多一些。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文