我在 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
两种方法之间似乎存在细微差别。函数的输入参数是如何处理的solver
,它们是被复制的还是只是传递给函数的内部?