2017-08-04 66 views
1

我有一个关于numba的基本问题,很遗憾我找不到答案。考虑下面的代码:在Numba重新编译

import numba 

@numba.jit(nopython=True) 
def f1(x): 
    y = 0 
    for _ in range(1000): 
     y += f2(x) 
    return y 

@numba.jit(nopython=True) 
def f2(x): 
    return x 

函数f2会在循环中每次调用f1时重新编译,还是只编译一次?

回答

0

f1被称为首次和被编译,这将必然编译f2和包括f2整个编译功能将缓存在内存中。每次后续调用f1(除非使用与先前调用类型不同的值调用x)不会导致重新编译任何代码。

+0

非常感谢! :) – Joerg