我有一个基本的Python程序,它创建了很多线程(2000),处理一些东西,然后将其写出。
我已经将我的代码缩小到与此类似(使用2k个线程): http://www.ibm.com/developerworks/aix/library/au-threadingpython/ 除了在我的类中我实际上什么都不做(从队列中获取项目,然后调用任务完成)。无论是在这个缩小版本中还是在我执行任务的版本中,内存使用量都是相同的。在32位Python解释器中,我使用大约105兆字节的虚拟内存。在64位中,我使用超过8吉字节。
我正在运行RHEL 6。我还添加了: threading.stack_size(32768) 来减小堆栈大小。我假设Python正在获取一些默认限制以保留内存,但我无法弄清楚该限制是什么。
有什么想法吗?
谢谢!
我已经将我的代码缩小到与此类似(使用2k个线程): http://www.ibm.com/developerworks/aix/library/au-threadingpython/ 除了在我的类中我实际上什么都不做(从队列中获取项目,然后调用任务完成)。无论是在这个缩小版本中还是在我执行任务的版本中,内存使用量都是相同的。在32位Python解释器中,我使用大约105兆字节的虚拟内存。在64位中,我使用超过8吉字节。
我正在运行RHEL 6。我还添加了: threading.stack_size(32768) 来减小堆栈大小。我假设Python正在获取一些默认限制以保留内存,但我无法弄清楚该限制是什么。
有什么想法吗?
谢谢!