Я написал скрипт, предназначенный для проверки эффективности декораторов @numba.jit
, которые я добавил к нескольким функциям.Я хочу сначала выполнить аннотированные функции без компиляции «точно в срок», а затем выполнить это снова с задействованными декораторами @numba.jit
, чтобы затем сравнить два результата.
Я пытался выполнитьизменив значение переменной окружения NUMBA_DISABLE_JIT
с помощью os.environ
, но я пока не уверен, что это дает желаемый эффект.Например:
# run first without and then with numba's just-in-time compilation
for flag in [1, 0]:
# enable/disable numba's just-in-time compilation
os.environ["NUMBA_DISABLE_JIT"] = str(flag)
# time an arbitrary number of iterations of the JIT decorated function
start = time.time()
for _ in range(1000):
expensive_function()
end = time.time()
# display the elapsed time
if flag == 0:
preposition = "with"
else:
preposition = "without"
print("Elapsed time " + preposition + " numba: {t}".format(t=(end - start)))
Имеет ли приведенная выше настройка переменной среды DISABLE_NUMBA_JIT
фактически отключение / включение JIT-компиляции всех функций, отмеченных @numba.jit
, как я полагаю?Если нет, то есть ли лучший способ снять кожу с этой кошки?