【问题标题】:Any way to lower Python memory footprint?有什么方法可以降低 Python 内存占用?
【发布时间】: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


【解决方案1】:

你确定你没有读取 Python 虚拟内存吗?

这里的 Python 消耗 3.4MB 的私有内存。

【讨论】:

  • 嗯,bash 脚本取自 Munin,所以我希望|认为是正确的......有什么方法可以验证这一点吗?
  • 第五个(awk 中的 $5)字段是 ps u -p 输出中的 VSZ ...它的含义是什么?
  • 我想我应该用 6 美元来解决这个问题,采用 RSS 而不是 VSZ,对吗? :P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-13
  • 2022-08-18
相关资源
最近更新 更多