在python3中使用pickle加载时内存泄漏
我多次尝试加载一个名为在python3中使用pickle加载时内存泄漏,python,python-3.x,memory-leaks,pickle,Python,Python 3.x,Memory Leaks,Pickle,我多次尝试加载一个名为m.pkl(大约81M)的大型pickle文件。每次加载后,内存使用量不断增加。但是如果在加载之前添加m=None,内存使用就会变得正常。为什么? #/usr/bin/env蟒蛇3 进口泡菜 从内存\u分析器导入配置文件 m=无 def do(): 全球m #m=无 将open('./m.pkl',rb')作为f: m=酸洗负荷(f) @侧面图 def main(): do() do() do() do() do() do() do() do() do() do() do(
m.pkl
(大约81M)的大型pickle文件。每次加载后,内存使用量不断增加。但是如果在加载之前添加m=None
,内存使用就会变得正常。为什么?
#/usr/bin/env蟒蛇3
进口泡菜
从内存\u分析器导入配置文件
m=无
def do():
全球m
#m=无
将open('./m.pkl',rb')作为f:
m=酸洗负荷(f)
@侧面图
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()