【发布时间】:2011-08-03 12:03:42
【问题描述】:
我正在开发一个 python 2.6(在 2.6.5 和 2.6.6 上测试)应用程序,它将作为我的 VPS 上的守护程序运行。 在一些测试中,我发现应用程序本身消耗了大约 37.53MB 的内存(在睡眠期间,因此没有任何活动或分配)。 我在过去的几个小时里一直在优化代码以减少应用程序的内存占用,但我悲惨地失败了 XD
我正在使用这行 bash 代码来获取我的应用程序使用的内存:
ps u -p $(pidof python) | awk 'NR > 1 {nm += $5} END {print nm * 1024}'
*(Yes, im sure i have only that one python instance running ;))*
所以,为了确保我不会浪费我的时间,我只运行了一个 python 解释器会话(没有脚本,没有 args,没有加载模块)并使用相同的脚本来获取它所消耗的内存...你知道吗?
几乎和我的整个应用一样!
那么,有什么方法可以减少 python 解释器的内存占用?我什至尝试将第一代的 gc 阈值设置为 3,然后在我的应用程序的安全位置调用 gc.collect() ......但没有任何改变:(
【问题讨论】:
-
This blog post 描述了不同数据结构的 python 内存占用...它可以帮助最小化您的守护进程的占用
标签: python memory garbage-collection