Кеширует ли Python загруженные файлы? - PullRequest
0 голосов
/ 12 июля 2019

Я заметил, что недавно загруженные файлы загружаются намного быстрее при повторном запросе - даже после удаления файла и освобождения ОЗУ . Я сомневаюсь, что это именно кеширование, так как оперативная память должна оставаться прежней - но разница в скорости загрузки очевидна. Это сохраняется до 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...