Python优化闲谈
Numba使用心得
在优化Python的过程中,了解到Numba可以对Python原生代码进行CPU和GPU加速。于是体验了一下。
代码:
from numba import jit
@jit
def test(value):
a = 0
for i in range(value):
a += i
def run():
start = time.time()
test(10000)
print("time1:", (time.time()-start))
# 不使用numba的时间:0.0012049674987792969s
# 使用numba的时间:1.4513230323791504s
run()
想来想去感觉根本不是那么回事,不是说numba是原生Python的代码几十倍吗?
继续探索把10000改成100000000效果如下:
# 不使用numba的时间:16.057264804840088s
# 使用numba的时间:1.8022119998931885s
发现随着数据增大后,使用numba所消耗的时间并没有明显变长,而这1.8s的时间内应该是编译时间占了大头。
继续探索,改一下代码,还是使用numba:
def run():
start = time.time()
test(100000000)
print("time1:", (time.time()-start))
start = time.time()
test(100000001)
print("time2:", (time.time()-start))
time1: 1.577368974685669
time2: 2.1457672119140625e-06
大吃一惊,time2的速度是真的飞起来了。
好了,我想你应该对numba的实用性方面有个概念了。