如何随着时间的推移释放python程序内存积累,文件I/O
我有一个下载和保存html页面的功能。随着时间的推移,内存不会被释放,程序会变慢。如何强制释放此内存(或是什么占用了此内存) 我想问题可能在于读取和写入文件。虽然我调用close(),但是否还有其他问题 下面的代码在for循环中(完成1000多次)如何随着时间的推移释放python程序内存积累,文件I/O,python,Python,我有一个下载和保存html页面的功能。随着时间的推移,内存不会被释放,程序会变慢。如何强制释放此内存(或是什么占用了此内存) 我想问题可能在于读取和写入文件。虽然我调用close(),但是否还有其他问题 下面的代码在for循环中(完成1000多次) 您可以根据需要手动调用gc。 但您的数据未发布,因此无法正常工作 在循环的末尾添加代码 pageText = None fileName = None openFile = None Python gc将自动工作。我感觉问题可能在其他地方,但要强制
您可以根据需要手动调用
gc
。
但您的数据未发布,因此无法正常工作
在循环的末尾添加代码
pageText = None
fileName = None
openFile = None
Python gc将自动工作。我感觉问题可能在其他地方,但要强制垃圾收集:
import gc
gc.collect() # force garbage collection
您可以
del
取消对未使用变量的引用。它会提示垃圾收集器更早地收集内存。如果没有完整的代码,我们将无法看到内存泄漏发生的位置
我也会用和重写你的代码,这样它就可以自己处理了
pageText = getPageAsText(url)
with open(os.path.expanduser('~')+STATIC_DIRECTORY+'/'+name, 'w') as f:
f.write(pageText)
只要它们的值发生更改,它就应该“工作”(实际上不会每次都收集,但放弃旧值最终会激活垃圾收集器)您所展示的代码中没有任何明显的内存占用。问题似乎存在于其他地方,可能在周围的代码中或在getPageAsText
中。您能否绘制内存消耗的图表并发布它。另外,请提供有关内存消耗量的详细信息?我们可以将其与我们的系统进行比较。Fina我也请你看看这个问题。也许你能有一些想法
pageText = getPageAsText(url)
with open(os.path.expanduser('~')+STATIC_DIRECTORY+'/'+name, 'w') as f:
f.write(pageText)