python程序中对象占用系统资源如何回收

xiaokang007 2010-08-06 10:49:07
用wxpython做的界面程序,出现以下问题:
涉及到界面程序,测试程序,测试程序有python写的,还有c++写的。

1.由于是做测试使用的,所以会长时间的运行,就会发现界面开启的时间越长,就显得界面包括测试程式都反映很慢
重新打开界面程序会好一点

2.也是由于开启时间长,发现测试程式有时候会无法运行。

我想可能是由于python占用了大量的系统资源,而在我的wxpython界面程式中,也没有做一些内存回收和清理的动作,导致的。
所以在使用很多list,字符串等 对象 之后,要做怎么样的处理,和什么时候去处理比较好。
...全文
166 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
canghaiyueming 2010-08-07
  • 打赏
  • 举报
回复
不动耶
xiaokang007 2010-08-07
  • 打赏
  • 举报
回复
补充下:“很容易化失败”
是指 音频数据采集 程序 中, 在采集后 和标准文件比对 。 就是这个 比对 结果很不稳定,可能在和 加载高清视频时 并行运行数据采集有关, 采集数据丢失较多。 后来改成串行方式, 先加载播放视频 ,然后再采集比对 音频数据,这种方式 采集音频的数据 丢失的 就没有 那么多了。

现在对大的一点 应该在我自己的程序 ,继续调试, 谢谢 各位的解答
thy38 2010-08-06
  • 打赏
  • 举报
回复
1. 界面长期不更新,系统会回收一些资源。致使你重回界面时要重新分配资源。(WPF这个问题更加严重,像假死一样)

2. 怎么个无法运行?有什么提示?

wxPython和Python本身的资源处理就够用了,一般不用自己动手。只是wxPython中一些像对话框这些资源用完和手动destroy()一下。
iambic 2010-08-06
  • 打赏
  • 举报
回复
你要用些资源查看器确定你的猜测。如果你的猜测是错误的,你尝试回收资源那是白费力气。内存是最容易看的了,用任务管理器就能看到。
我曾经在一个项目里遇到一个非常诡异的内存泄漏问题,很怀疑是python的bug,后来使用很诡异的方式解决的。不过一般情况内存泄漏还是因为用户程序的问题,而不是Python本身的问题。

看你后面的描述,“很容易化失败”,不知道失败是什么意思。如果一个程序的正确性有问题,那大多是无关什么资源的了。
xiaokang007 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thy38 的回复:]
1. 界面长期不更新,系统会回收一些资源。致使你重回界面时要重新分配资源。(WPF这个问题更加严重,像假死一样)
2. 怎么个无法运行?有什么提示?
wxPython和Python本身的资源处理就够用了,一般不用自己动手。只是wxPython中一些像对话框这些资源用完和手动destroy()一下。
[/Quote]


这个无法运行指的是 很容易发生错误, 有采集和处理数据(音频数据采集)的程序(C++实现,python调用), 在测试程序中 有使用多线程操作,并行 加载视频(1080P/720P),这个使用的wx.meida控件。
刚开始启动测试界面后,采集处理数据 和 加载播放高清视频 是可以正常run的。 looping 一段时间以后 ,采集处理数据 部分 就很容易 失败。

可能也是跟我写的wxpython界面有关系,界面程式会收集保存 每一步测试 的(时间,项目,结果,测试数据等)操作。没有及时的释放资源,到后来系统就越来越慢

怀疑是 系统资源不够用 导致的, 想采取些措施 ,及时的释放一些系统资源,不知道有没有其他更好的办法。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧