У меня есть следующий код:
import numpy as np
from timeit import default_timer as timer
n = 10
trials = 10
def test(scale=0.1):
A = np.random.normal(scale=scale, size=(n, n))
v = np.random.normal(scale=scale, size=(n))
start = timer()
A @ v
end = timer()
print('Time: ', end-start)
for _ in range(trials):
test()
Вывод:
Time: 0.0036287959665060043
Time: 7.0838723331689835e-06
Time: 3.401888534426689e-06
Time: 3.093155100941658e-06
Time: 3.0230730772018433e-06
Time: 3.037974238395691e-06
Почему первые два испытания намного медленнее?Суть в том, что я работаю над проектом, в котором мне нужно сообщить об ускорении одного метода (для умножения матрицы на вектор в специализированном случае) по сравнению с общим умножением матрицы на вектор.Должен ли я игнорировать первые несколько испытаний, и если да, то почему?