我有一个应用程序,我在队列中填充大量数据,然后工作人员清空该数据 我正在使用队列,因为它被阻止,所以我不需要一直应用锁。
因此,有时候该队列中填充了100万个字符串数据项。每个项目占用大约80个字节的内存。
在某些情况下,在使用高峰时,python开始占用大约3 GB的内存。然后,当消费者清空整个队列时,python仍然占用3 GB的内存。我正在使用ps
命令检查内存。这是什么现象?这是因为第一个地方的队列膨胀导致内存占用率高吗?如果是这样,可以做些什么来控制它?在python中还有其他更好的集合作为队列的替代吗?
答案 0 :(得分:0)
Python(通常)不会将其用于操作系统的内存返回。队列为空后,您的进程将保留分配给队列的内存。如果你要向队列添加另外3GB的数据,Python应该重用它已经拥有的内存,而不是从操作系统请求更多(即你不应该看到它的内存分配进一步增长)。