Я несколько раз пытался загрузить большой файл с именем m.pkl
(около 81M). После загрузки каждый раз использование памяти постоянно увеличивается. Но если я добавлю m = None
перед загрузкой, использование памяти станет нормальным. Почему?
#!/usr/bin/env python
import pickle
from memory_profiler import profile
m = None
def do():
global m
# m = None
with open('./m.pkl', 'rb') as f:
m = pickle.load(f)
@profile
def main():
do()
do()
do()
do()
do()
do()
do()
do()
do()
do()
do()
do()
do()
do()
do()
do()
do()
main()
Line # Mem usage Increment Line Contents
================================================
17 12.1 MiB 12.1 MiB @profile
18 def main():
19 406.7 MiB 394.6 MiB do()
20 615.4 MiB 208.7 MiB do()
21 615.5 MiB 0.1 MiB do()
22 683.0 MiB 67.5 MiB do()
23 676.4 MiB 0.0 MiB do()
24 678.4 MiB 1.9 MiB do()
25 694.5 MiB 16.1 MiB do()
26 694.8 MiB 0.3 MiB do()
27 694.8 MiB 0.0 MiB do()
28 696.0 MiB 1.3 MiB do()
29 697.4 MiB 1.4 MiB do()
30 698.0 MiB 0.5 MiB do()
31 695.7 MiB 0.0 MiB do()
32 696.1 MiB 0.4 MiB do()
33 699.0 MiB 2.8 MiB do()
34 698.4 MiB 0.0 MiB do()
35 706.4 MiB 8.0 MiB do()