|
|
1
182
看看python字节码的反汇编,你可能会得到一个更具体的想法 while循环使用:
循环体有10个操作 使用范围:
|
|
|
2
41
使用
|
|
|
3
21
必须说,while循环中有很多对象的创建和销毁。
但是因为Python int是不可变的,所以它不会修改现有的对象;相反,它创造了一个具有新价值的全新对象。它基本上是:
更新:
有趣。现在使用3.11,
两者都是非常稳定的ns/迭代超过100。 |
|
|
4
11
我认为这里的答案比其他答案所暗示的要微妙一些,尽管它的要点是正确的: for循环更快,因为更多的操作发生在C中,而Python中的操作更少 .
我们可以看到,正是这两件事的结合,通过手动将它们加回来查看差异,使for循环更快。
我尝试了将数字100000000作为一个字面常量,并将其作为一个变量
正如你所看到的,在这两种情况下
3倍代码加速 |
|
|
5
4
|
|
|
6
0
|
|
Sweepy Dodo · JSON lite的格式化 10 月前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 11 月前 |
|
Zegarek · Postgresql递归查询未提供预期结果 11 月前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 1 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 1 年前 |