Python中更好的内存管理

时间:2016-07-28 02:46:37

标签: python-2.7 memory memory-management

我正在运行一个python脚本,该脚本读取大量文件并将内容存储在列表中并进行一些比较。正如所料,使用的内存量很多。我已经了解了如何确保分配给列表,变量等的所有内存被释放并在del之后返回给操作系统并不容易。

我的脚本做的是有一个99个文件的文件夹(每个~130MB),我需要与另一个~12K文件的文件夹(每个~300KB)进行比较。现在,我将12K文件分成每批200个,并取出99个文件中的每一个,逐批比较,直到所有批次都完成。然后获取99个文件的下一个文件,并重复。在每批次之后,我会尝试通过del我完成的列表释放内存,然后执行gc.collect()

当我查看我的Windows任务管理器时,我看到以下内容:

Physical Memory (MB)
Total      3970
Cached     2665  <-- decreases slowly as more files are processed
Available  2612  <-- ranges from 2700+ to 2500+ in a cyclic manner as each batch is processed
Free       0     <-- ranges from 100+ to 0 in a cyclic manner as each batch is processed

&#34;免费记忆&#34;当PC首次启动时实际上从~2500MB下降到脚本运行时为0(一般趋势下降,但每批处理后它上升100+ MB),然后从0到100+ MB循环。我想知道我是否应该担心#3; 0 Free memory&#34;。我可以做更多的事情来增加这个&#34;免费记忆&#34;?

0 个答案:

没有答案