如何在python中强制释放str?

时间:2013-12-04 12:02:56

标签: python

在提出这个问题之前,我想对你说对不起,因为我不是英语,我的英语非常差。

我正在写一个python程序来读取一个字符串的文件, 然后分析它, 然后将其传递给其他程序。(它们不能用于流)

像这样的简单代码:

content = open("file").read()
if passItToA(content):
    A.portal(content)
del content

问题是我读的字符串不会被释放。通常它会一直持续到过程结束。

我知道它是动态语言的一个特性。 但是当我同时运行1000个重复进程时,它会导致大量内存浪费。

我可以在通话时发布吗?

1 个答案:

答案 0 :(得分:5)

Python在很大程度上依赖于垃圾收集。要将值标记为垃圾(并让收集器对其进行处理),只需覆盖它:

content = ''

您还可以从变量字典中删除整个变量:

del content

但是关于字符串值,两者都是一样的。

确保没有其他变量仍然保持指向该字符串的指针。在您的情况下,A.portal()passItToA()不应创建指向同一字符串的长生命指针,以便能够释放它。