我有一个带有256MB RAM的嵌入式Linux系统。它上有一个大的代码库,大多数是C++,但有些实用程序是在Python中。我们有一个Python“包管理器”,它使用Python apt module(我们将更新作为.deb文件分发)来处理对系统的更新。在运行时,这个应用程序使用了系统RAM的很大一部分。我用top监视RAM的使用情况,查看Python进程的RSS(也许这不是分析进程内存使用情况的有效方法吗?接受建议)。在
线
cache = apt.Cache()
它被周期性地调用来检查系统的状态,每次被调用时似乎要消耗大约20MB的内存,而且看起来并没有返回内存。我尝试删除函数末尾的缓存对象并运行gc.收集(),这似乎没什么帮助。在
如何减少这个程序的内存使用?在
平台是armcortexa8,运行linux3.2、debianwheezy和python2.7.3。在
Garbage Collector interface module(
gc
)正是您可以在这里用来进一步调试这个问题的。在要调试泄漏的程序调用:
这将把有关垃圾回收的调试信息输出到您的控制台中。在
为了进一步调试,
gc
模块提供了更多的功能,包括列出垃圾回收器跟踪的所有对象、禁用/启用收集器或手动触发垃圾回收。在如果没有泄漏并且只想降低内存使用率,请尝试使用
gc.set_threshold
在内存使用率较低的点触发垃圾回收。在clean
命令用于通过清理从本地存储库检索(下载)的.deb文件(包)来释放磁盘空间。在希望这有帮助!在
相关问题 更多 >
编程相关推荐