如果python处理太多的大文本,内存会溢出

时间:2012-04-10 09:13:25

标签: python string memory

python会将所有字符串存储在athene_pool中并且永远不会释放它们,所以最近大文字处理困扰了我。 我将文章内容保存到redis,并从redisclient中获取它们,并将它们发送到http response.虽然序列化可能会导致太多内存,有什么好主意可以解决这样的问题吗? 我想知道django是否产生了太多的响应,它如何释放它们以保持低内存?

1 个答案:

答案 0 :(得分:1)

Python不会汇集所有字符串,请参阅Are strings pooled in Python

例如,这个10K字符串不是合并的:

>>> a = '5' * 10000
>>> b = '5' * 10000
>>> a is b
False

但是短的5个字符的字符串汇集的:

>>> a = '5' * 5
>>> b = '5' * 5
>>> a is b
True

Ergo:您不必担心长字符串在内存中保留的时间超过必要的时间。