from time import time
from numba import jit
# from numba import autojit
# @autojit #能对所有类型的参数进行运算
@jit #即时编译,产生的函数只能对指定类型的参数进行运算
def foo():
i = 0
for a in range(200000000):
i += 1
@jit #可同时使用多个@jit
def foo2():
for a in range(200000000):
continue
if __name__ == '__main__':
start = time()
foo()
end = time()
shi = end-start
start2 = time()
foo2()
end2 = time()
shi2 = end2-start2
print("foo()总耗时:%s秒" % shi)
print("foo2()总耗时:%s秒" % shi2)
注释掉@jit,foo()耗时17.66000986099243秒,foo2()耗时6.496371507644653秒;
启用@jit,foo()耗时0.04500269889831543秒,foo2()耗时0.041002511978149414秒;
foo()相差392倍,foo2()相差158倍;
@jit必须在要加速的函数上方(不能隔其他函数)才有效,可同时使用多个@jit。
注意下面的情况: