Я заметил, что недавно загруженные файлы загружаются намного быстрее при повторном запросе - даже после удаления файла и освобождения ОЗУ . Я сомневаюсь, что это именно кеширование, так как оперативная память должна оставаться прежней - но разница в скорости загрузки очевидна. Это сохраняется до 10 последовательных загрузок различных файлов - после чего эффект прекращается. Код ниже.
Что именно такое поведение, и если оно отрицательно влияет на производительность, как его предотвратить?
# RAM 52% (Spyder & TaskManager readings)
t0 = time()
x0 = load_mat(filepath0) # RAM 60%
print('0: ' + str(time() - t0))
del x0 # RAM 52%
...
t0 = time()
x9 = load_mat(filepath9) # RAM 60%
print('9: ' + str(time() - t0))
del x9 # RAM 52%
t0 = time()
x0_ = load_mat(filepath0) # RAM 60%
print('0_: ' + str(time() - t0))
del x0_ # RAM 52%
...
0: 5,798 & emsp; & ЕПРС; 0_: 0,501
1: 5,541 & emsp; & ЕПРС; 1_: 0,539
2: 6.076 & emsp; & ЕПРС; 2_: 0,575
3: 5,785 & emsp; & ЕПРС; 3_: 0,581
4: 5,772 & emsp; & ЕПРС; 4_: 0,521
5: 5.692 & emsp; & ЕПРС; 5_: 0,513
6: 5,838 & emsp; & ЕПРС; 6_: 0,529
7: 5,711 & emsp; & ЕПРС; 7_: 0,513
8: 5,677 & emsp; & ЕПРС; 8_: 0,509
9: 5.997 & emsp; & ЕПРС; 9_: 0,514
(Интересное событие при загрузке 11: время занято = 2,47 с - ни 5,5, ни 0,5)
## FUNCTIONS/MODULES USED
from time import time
from scipy.io import loadmat
import numpy as np
def load_mat(filepath):
return np.asarray(loadmat(filepath)['data']).astype('float32')