|
|
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
|