Python中文
首页
教程
问答
标签
搜索
登录
注册
Python: CTypes的结构体内存泄漏
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>Python<code>ctypes</code>是否存在已知的内存泄漏?我正在编写一个Python脚本,其代码类似于下面的代码片段,使用<code>ctypes</code>,由于某种原因导致内存泄漏。本例中的“<code>while True</code>”用于测试调用函数所导致的泄漏。它正在使用Python 2.5.4在Windows上运行:</p> <pre><code>import ctypes def hi(): class c1(ctypes.Structure): _fields_=[('f1',ctypes.c_uint8)] class c2(ctypes.Structure): _fields_=[('g1',c1*2)] while True: test=hi() </code></pre> <p>可以使用ProcessExplorer测试这个漏洞——由于它不断循环,Python会占用越来越多的内存。它似乎需要有两个结构子类,其中一个类有另一个的“倍数”(使用<code>*</code>运算符),但我不确定条件是否比这更基本。即使在循环中添加了<code>del test</code>,它仍然会泄漏内存。在</p> <p>你知道是什么原因造成的吗?在</p> <p>编辑:因为有人建议它可能还没有垃圾收集,下面是一个经过编辑的版本,它进行了垃圾收集,但似乎仍然泄漏内存:</p> ^{pr2}$
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>脚本本身不会泄露。使用<code>gc.set_debug(gc.DEBUG_LEAK)</code>运行表明所创建的结构类型是可收集的,并且<code>gc.garbage</code>在每次循环迭代中都保持为空,因此没有不可回收的对象。在Linux系统上运行带有<code>time</code>的脚本时,内存消耗也不会稳步增加。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
10 回答
如何添加表示整数的擦边字符串?
6 回答
如何添加要在Bokeh中使用的新font.ttf文件?
1 回答
如何添加要显示的矩阵XY轴编号和XY轴
10 回答
如何添加计数?
9 回答
如何添加计数器函数?
6 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
1 回答
如何添加计数器来跟踪while循环中的月份和年份?
3 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
5 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
8 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
3 回答
如何添加评论拉梅尔亚姆
3 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
3 回答
如何添加谷歌地点自动完成到Flask?
8 回答
如何添加超时、python discord bot
5 回答
如何添加超过1dp的检查
4 回答
如何添加距离方法
2 回答
如何添加跟随游戏的敌人精灵
4 回答
如何添加路径以便python可以找到程序?
10 回答
如何添加身份验证/安全性以使用happybase访问HBase?
1 回答