Python中文
首页
教程
问答
标签
搜索
登录
注册
当代码被包装在函数中时,是否可以提高内存效率?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我一直在研究一些代码。我通常的方法是先解决问题的所有部分,在解决问题的过程中创建我需要的循环和其他代码,然后如果我希望重用代码,我会回顾一遍,并将我认为应该分组以创建函数的代码部分组合在一起。在</p> <p>我刚刚注意到,创建函数并调用它们似乎比编写代码行和删除容器要高效得多。在</p> <p>例如:</p> <pre><code>def someFunction(aList): do things to aList that create a dictionary return aDict </code></pre> <p>似乎最后释放的记忆比</p> ^{pr2}$ <p>这是预期的行为吗?在</p> <p>编辑添加的示例代码</p> <p>当这个函数运行完毕后,PF的使用量增加了大约100mb,fillingslist有大约800万行。在</p> <pre><code>def getAllCIKS(filingList): cikDICT=defaultdict(int) for filing in filingList: if filing.startswith('.'): del(filing) continue cik=filing.split('^')[0].strip() cikDICT[cik]+=1 del(filing) ciklist=cikDICT.keys() ciklist.sort() return ciklist allCIKS=getAllCIKS(open(r'c:\filinglist.txt').readlines()) </code></pre> <p>如果我运行这个,我会显示增加了将近400MB</p> <pre><code>cikDICT=defaultdict(int) for filing in open(r'c:\filinglist.txt').readlines(): if filing.startswith('.'): del(filing) continue cik=filing.split('^')[0].strip() cikDICT[cik]+=1 del(filing) ciklist=cikDICT.keys() ciklist.sort() del(cikDICT) </code></pre> <p>编辑 我今天一直在玩这个。我的观察和问题应该再细化一点,因为我的重点是PF的使用。不幸的是,我只能在其他任务之间挑刺。然而,我开始怀疑参考文献和副本。如果我从列表创建字典,字典容器是否保存来自列表的值的副本,还是保存对列表中值的引用?我打赌这些值是复制的而不是引用的。在</p> <p>我注意到的另一件事是GC列表中的项是从容器中删除的项。有道理吗?所以我有一个列表,假设列表中的每一项都是[(aTuple),一个整数,[另一个列表]]。当我开始学习如何操作gc对象并检查它们时,我在gc中找到了这些对象,即使列表已被强制删除,即使我将0,1&2值传递给了我不记得仍试图删除它们的方法。在</p> <p>我很欣赏大家分享的见解。不幸的是,我总是对搞清楚引擎盖下的工作原理感兴趣。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>也许你在你的函数中使用了一些局部变量,这些变量是通过引用计数在函数末尾隐式释放的,而它们不是在代码段末尾释放的?在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
1 回答
文本小部件:在没有输入时更新并在循环后保持空闲
2 回答
文本小部件tkin
1 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
2 回答
文本小部件tkinter复制图像选项
5 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
7 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
6 回答
文本小部件不显示lis中的内容
5 回答
文本小部件不显示Unicode字符
2 回答
文本小部件中写入的行间距
3 回答
文本小部件中的文本作为变量
9 回答
文本小部件中的滚动条仅显示在底部
5 回答
文本小部件中的选项卡键空间计数
3 回答
文本小部件作为Lis
5 回答
文本小部件在主框架中扩展列宽
6 回答
文本小部件未使用删除功能清除
7 回答
文本小部件滚动动画(Tkinter、Python)
4 回答
文本居中。格式正确吗?
9 回答
文本差分算法
1 回答
文本已知时音频文件中的单词索引
8 回答