私はPythonで次の例を持っています:
import numpy as np
import timeit
# array size
m = 3000
# square array
a = np.random.rand(m, m)
# column vector
b = np.random.rand(m)
# solve
ti = timeit.default_timer()
x = np.linalg.solve(a, b)
tf = timeit.default_timer()
# solve function
def solver(a, b):
x = np.linalg.solve(a, b)
return x
tii = timeit.default_timer()
x = solver(a, b)
tff = timeit.default_timer()
print('time1 ', tf-ti)
print('time2 ', tff-tii)
関数を使用しない場合 (time1) と関数を使用する場合 (time2) の時間比較は次のとおりです。
time1 0.6199771239989786
time2 0.5945519460001378
2つのアプローチにはわずかな違いがあるようです。関数の入力パラメータはどのように処理されますsolver
か、コピーされますか、それとも単に関数の内部に渡されますか?