pyclutter内存泄露排查记录

在使用Python+Clutter开发的播放器中,一个自定义的C语言Clutter控件存在内存泄漏问题。该控件用于展示电影简介,包含大量图片。在目标设备上运行时发现,虽然控件创建与销毁的直接内存消耗可控,但加载并显示图片后,内存占用持续高位,未见明显回收迹象。疑似与Python内存管理机制有关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一款使用python+clutter的播放器中,使用一个自定义使用c语言的clutter的控件,来显示一部影片的简介,简介中最多时,大概会显示一百多张图片.

现在有一个问题就是,这个控件有内存泄露的问题.

首先是,这个控件本身会内存泄露,开始时大概创建和销毁一次此控件,虚拟内存会增加5m左右,后来,经过排查,主要是一些字符串资源没有释放的问题.

经过修改,现在降到了200-300k左右.基本可以接受.

在本机的测试中,使用二种方式来测试,一种是在c语言工程中来测试这个控件,另一种是在一个python工程来测试这个控件,两种测试結果表示,每次创建和销毁大概只会消耗200-300k,两者結果比较一致.

但是,在目标机上实际运行却发现,一旦加载此控件,然后显示多张图片,内存资源上升到最高值,但是,销毁此控件时,内存消耗却再也不会下降,而且再次创建此控件,内存也只会在这个最高值附近,也不会再继续增加.

初步怀疑是由于python的内存池机制问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值