gpt4 book ai didi

python - 为什么 < 比 >= 慢

转载 作者:IT老高 更新时间:2023-10-28 20:57:42 25 4
gpt4 key购买 nike

我正在使用以下代码进行测试,似乎 < 比 >=. 慢,有人知道为什么吗?

import timeit
s = """
x=5
if x<0: pass
"""
t = timeit.Timer(stmt=s)
print "%.2f usec/pass" % (1000000 * t.timeit(number=100000)/100000)
#0.21 usec/pass
z = """
x=5
if x>=0: pass
"""
t2 = timeit.Timer(stmt=z)
print "%.2f usec/pass" % (1000000 * t2.timeit(number=100000)/100000)
#0.18 usec/pass

最佳答案

在 Python 3.1.2 中,有时 < 比 >= 快。我尝试在反汇编程序中阅读它,

import dis
def f1():
x=5
if x < 0: pass

def f2():
x = 5
if x >=0: pass

>>> dis.dis(f1)
2 0 LOAD_CONST 1 (5)
3 STORE_FAST 0 (x)

3 6 LOAD_FAST 0 (x)
9 LOAD_CONST 2 (0)
12 COMPARE_OP 0 (<)
15 POP_JUMP_IF_FALSE 21
18 JUMP_FORWARD 0 (to 21)
>> 21 LOAD_CONST 0 (None)
24 RETURN_VALUE
>>> dis.dis(f2)
2 0 LOAD_CONST 1 (5)
3 STORE_FAST 0 (x)

3 6 LOAD_FAST 0 (x)
9 LOAD_CONST 2 (0)
12 COMPARE_OP 5 (>=)
15 POP_JUMP_IF_FALSE 21
18 JUMP_FORWARD 0 (to 21)
>> 21 LOAD_CONST 0 (None)
24 RETURN_VALUE

代码几乎相同,但 f1 总是运行第 15 行并跳转到第 21 行,f2 总是运行 15 -> 18 -> 21,因此性能应该受 if 语句中的真/假而不是 < 或 > = 问题。

关于python - 为什么 < 比 >= 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3369304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com