我使用numba JIT加快我的Python代碼,但是代碼應該是即使沒有安裝numba & LLVM的功能。
我的第一個想法是要做到這一點,如下所示:
use_numba = True
try:
from numba import jit, int32
except ImportError, e:
use_numba = False
def run_it(parameters):
# do something
pass
# define wrapper call function with optimizer
@jit
def run_it_with_numba(parameters):
return run_it(parameters)
# [...]
# main program
t_start = timeit.default_timer()
# this is the code I don't like
if use_numba:
res = run_it_with_numba(parameters)
else:
res = run_it(parameters)
t_stop = timeit.default_timer()
print "Numba: ", use_numba, " Time: ", t_stop - t_start
,因爲我曾預計這是不行的,因爲編譯似乎只適用於run_it_with_numba()函數哪位基本上沒有nothing-但而不是從該函數調用的子例程。
結果只會變得更好,當我在包含工作量的功能應用@jit。
是否有機會避免包裝函數並在主程序中,如果從句?
有沒有辦法告訴給Numba還以優化從我進入函數調用子程序?因爲run_it()還包含一些函數調用,我期望@jit來處理這個問題。
立方米, 啤酒
太好了,謝謝。 ...花了我一秒鐘找到第3行的錯字:) – Ale