Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何随着时间的推移释放python程序内存积累,文件I/O_Python - Fatal编程技术网

如何随着时间的推移释放python程序内存积累,文件I/O

如何随着时间的推移释放python程序内存积累,文件I/O,python,Python,我有一个下载和保存html页面的功能。随着时间的推移,内存不会被释放,程序会变慢。如何强制释放此内存(或是什么占用了此内存) 我想问题可能在于读取和写入文件。虽然我调用close(),但是否还有其他问题 下面的代码在for循环中(完成1000多次) 您可以根据需要手动调用gc。 但您的数据未发布,因此无法正常工作 在循环的末尾添加代码 pageText = None fileName = None openFile = None Python gc将自动工作。我感觉问题可能在其他地方,但要强制

我有一个下载和保存html页面的功能。随着时间的推移,内存不会被释放,程序会变慢。如何强制释放此内存(或是什么占用了此内存)

我想问题可能在于读取和写入文件。虽然我调用close(),但是否还有其他问题

下面的代码在for循环中(完成1000多次)


您可以根据需要手动调用
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)