Python是否缓存已加载的文件?

时间:2019-07-12 00:03:36

标签: python performance caching

我注意到,再次请求时,最近加载的文件加载速度大大加快-即使删除了文件并释放了RAM,也是如此。我怀疑它是否正是缓存,因为RAM是否应保持不变-但加载速度差异是显而易见的。这种情况可持续多达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 0_: 0.501
1: 5.541 1_: 0.539
2: 6.076 2_: 0.575
3: 5.785 3_: 0.581
4: 5.772 4_: 0.521
5: 5.692 5_: 0.513
6: 5.838 6_: 0.529
7: 5.711 7_: 0.513
8: 5.677 8_: 0.509
9: 5.997 9月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')

0 个答案:

没有答案