首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows任务管理器: Python应用程序内存使用量增加

Windows任务管理器: Python应用程序内存使用量增加
EN

Stack Overflow用户
提问于 2016-04-07 13:54:18
回答 1查看 294关注 0票数 0

我用Python3.4和Tkinter开发了一个应用程序。我的应用程序运行几个线程(3-5),每个线程在下面运行。

  1. 从套接字(UDP)获取消息的recvfrom()的无限循环
  2. 循环,它显示消息并将其写入文件。

我在基于XP的windows嵌入式操作系统上使用我的应用程序,我用TaskManager观察内存的使用情况,因为我想在不关机的情况下运行我的应用程序很长时间(可能超过一个月)。

那么,一个问题是

Mem的使用(物理)逐渐增加,但有时急剧减少。所以总体上看没问题。

但是,虚拟内存大小(VMSize)随着长期视图的增加而增加.例如,当我启动app时,VMSize是26 was。第二天,它变成29 it,第二天,它变成32 it。有时增加一点,有时减少一点(例如,20 It )。但总体而言,这一数字呈上升趋势。这不是很大的数量,但“增加”让我感到不安。

我希望GarbageCollection能够提供帮助,所以我在代码中插入了gc.collect(),以便每3小时调用一次。但是没有什么变化,而print(gc.collect())总是显示0(除了在应用程序启动之后)。

这是内存泄漏吗?

我阅读了del()的定义,引用周期可能导致Python中的内存泄漏,但我从不自己定义del()。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-20 14:03:19

我自己发现了原因,所以我把它写在这里,结束这个问题。

内存泄漏的原因是我从多个线程调用tkinter函数。tkinter不是线程安全的,所以我违反了它的规则。

我修改了我的程序,这样只有主线程使用tkinter函数,然后内存泄漏就消失了。

谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36478336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档