Python中文
首页
教程
问答
标签
搜索
登录
注册
为什么我的C模块内存泄漏?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在从一个大文件中读取列表,我最终希望将其存储为<code>array.array</code>s</p> <pre><code>map(int, line.split()) </code></pre> <p>非常慢,我编写了一个小型C模块来执行strtok和一个更快的atoi版本:</p> ^{pr2}$ <p>因此,我的python脚本使用一个字符串调用<code>ints()</code>,并将其传递给<code>array.array</code>构造函数,并将结果数组保存在<code>list</code>中。在</p> <p>我的问题是,现在脚本泄漏了内存,当然,它没有使用map而不是<code>ints()</code>函数。在</p> <p>同样使用我自己版本的Pythons<code>int()</code>,使用C模块不会泄漏内存。在</p> <p>谢谢你的帮助!在</p> <p><strong>编辑:</strong> 为了对模块进行valgrind,我使用了以下脚本:</p> <pre><code>import minhashTables data = ' '.join(map(str, range(10))) print 'start' foo = minhashTables.ints(data) del data del foo print 'stop' </code></pre> <p>我运行<code>valgrind --tool=memcheck --leak-check=full --show-reachable=yes python test.py</code>,但是在<code>start</code>和{<cd9>}之间没有valgrind的输出,前后有吨。在</p> <p><strong>编辑:</strong>确认泄漏的代码: 导入minhashTables</p> <pre><code>for i in xrange(1000000000): data = ' '.join(map(str, range(10, 10000))) foo = minhashTables.ints(data) </code></pre> <p>我必须重新创建字符串,因为strtok改变了它。顺便说一下,将字符串复制到另一个内存位置不会改变行为。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我建议您看看<a href="http://valgrind.org/" rel="nofollow">Valgrind</a>-这是一个非常有用的工具,可以帮助您了解C语言中内存泄漏的问题</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我想从用户inpu创建一个类的实例
9 回答
我想从用户导入值,为此
8 回答
我想从用户那里得到一个整数输入,然后让for循环遍历该数字,然后调用一个函数多次
1 回答
我想从用户那里收到一个列表,并在其中执行一些步骤,然后在步骤完成后将其打印回来,但它没有按照我想要的方式工作
3 回答
我想从用户那里获取输入,并将值传递给(average=dict[x]/6),然后在那里获取resu
9 回答
我想从第一个列表中展示第一个词,然后从第二个列表中展示十个词,以此类推- Python
5 回答
我想从第一个空lin开始解析文本文件
4 回答
我想从简历、简历中提取特定部分
7 回答
我想从给定字典(python)的字符串中删除\u00a9、\u201d和类似的字符。
8 回答
我想从给定的网站Lin下载许多文件扩展名相同的Wget或Python文件
7 回答
我想从网上搜集一些关于抵押贷款的数据
4 回答
我想从网站上删除电子邮件地址
4 回答
我想从网站上读取数据该网站包含可下载的文件,然后我想用python脚本把它发送给oracle如何?
3 回答
我想从网站中提取数据,然后将其显示在我的网页上
5 回答
我想从网页上提取统计数据。
9 回答
我想从网页上解析首都城市,并在用户输入国家时在终端上打印它们
6 回答
我想从色彩图中删除前n个颜色,而不丢失原始颜色数
1 回答
我想从课堂上打印字典里的键
6 回答
我想从费用表中获取学生上次支付的费用,其中学生id=id
9 回答
我想从较低的顺序对多重列表进行排序,但我无法在一行中生成结果
9 回答