如果python处理太多bigtext,内存会溢出吗
python将把所有字符串存储在athene_池中,并且永远不会释放它们,所以bigtext压缩最近困扰着我。 我将文章内容保存到redis,并从redisclient获取它们,然后将它们发送到http response。虽然序列化可能会导致内存过多,但有什么好办法来解决这种问题吗?如果python处理太多bigtext,内存会溢出吗,python,string,memory,Python,String,Memory,python将把所有字符串存储在athene_池中,并且永远不会释放它们,所以bigtext压缩最近困扰着我。 我将文章内容保存到redis,并从redisclient获取它们,然后将它们发送到http response。虽然序列化可能会导致内存过多,但有什么好办法来解决这种问题吗? 我想知道django是否生成了太多的响应,它如何释放这些响应以保持低内存?Python不会汇集所有字符串,请参阅 例如,此10K字符串不是池: >>> a = '5' * 10000 >&g
我想知道django是否生成了太多的响应,它如何释放这些响应以保持低内存?Python不会汇集所有字符串,请参阅 例如,此10K字符串不是池:
>>> a = '5' * 10000
>>> b = '5' * 10000
>>> a is b
False
但合并了一个短的5个字符的字符串:
因此:您不必担心长字符串在内存中的保存时间过长。关于“is”测试:python“is”操作符测试两个对象是否真的是同一个对象。在这种情况下,我滥用操作符来检查两个字符串是否合并为一个字符串。即使是短字符串也只有在源代码中作为字符串文本出现时才会合并(或者通过某个函数
sys
IIRC显式插入)。编译器常量将代码段中的5
*5`折叠成'55555'
,您将看到是否将其放入函数并在其上运行dis.dis
。
>>> a = '5' * 5
>>> b = '5' * 5
>>> a is b
True