ここに例があります。パフォーマンスを完全に破壊することなくNumbaのリストを変更するには?
import timeit
import numba
@numba.njit('void(List(intp, True))')
def foo(v): v[0] += 1
a = range(1 << 25)
start = timeit.default_timer()
foo(a)
stop = timeit.default_timer()
print stop - start
を明らかにNumbaが前後にリストをコピーしている:あなたはこのコードを実行した場合、それはfoo
を呼び出すために〜1秒のオーダーにかかったことを印刷します。それを避ける方法はありますか?
(NumPy配列を簡単に使用することはできません。私のコードでリストをサイズ変更可能にする必要があります)
なぜあなたはこれをやっていますか?モチベーションは何ですか? – Veedrac
@Veedrac:どういう意味ですか?固定サイズではないリストが必要なシナリオは想像できませんか? – Mehrdad