2017-08-04 11 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

関連する問題