带有嵌入式功能的Python内存爆炸

用户名

我已经使用Python一段时间了,时不时遇到一些内存爆炸问题。我已经搜索了一些资源来解决我的问题,例如“内存分析嵌入式python”https://mflerackers.wordpress.com/2012/04/12/fixing-and-avoiding-memory-leaks-in-python/https: //docs.python.org/2/reference/datamodel.html#object。德尔然而,他们都不适合我。

我当前的问题是使用嵌入式功能时内存爆炸。以下代码可以正常工作:

class A:
  def fa:
    some operations
    get dictionary1
    combine dictionary1 to get string1
    dictionary1 = None
    return *string1*

  def fb: 
    for i in range(0, j):
      call self.fa
      get dictionary2 by processing *string1* 
      # dictionary1 and dictionary2 are basically the same. 
      update *dictionary3* by processing dictionary2
      dictionary2 = None
    return *dictionary3*

class B:
  def ga: 
    for n in range(0, m):
      call A.fb # as one argument is updated dynamically, I have to call it within the loop 
      processes *dictoinary3*
    return something

当我注意到不需要将dictionary1组合string1时,就会引起问题,我可以直接将Dictionary1传递给A.fb。我以这种方式实现了它,然后程序变得非常慢,并且内存使用量激增了十倍以上。我已验证这两种方法均返回了正确的结果。

有人建议为什么这么小的修改会带来如此大的差异?

以前,当我在多源树中平衡节点时(拥有100,000多个节点),我也注意到了这一点。如果我从源节点(可能具有最大的高度)开始进行均衡,则内存使用量比源节点(可能具有最小的高度)的内存使用情况差100倍。平准化时间大致相同。

这让我很困惑。提前非常感谢您!

如果有兴趣的人,我可以通过电子邮件将源代码发送给您,以获得更清晰的解释。

尼尔·阿尔法西

您正在解决同一问题的事实并不意味着有关解决方案的效率。排序数组可能会遇到相同的问题:您可以使用bubble-sortO(n^2)或merge-sort O(nlogn),或者,如果可以应用一些限制,则可以使用非比较排序算法,例如radix或bucket-sort,它们具有线性运行时间。

从不同的节点开始遍历将产生不同的遍历图的方式-其中一些可能无效(重复节点多次)。

至于“将dictionary1转换为string1”,这可能是一个非常昂贵的操作,并且由于(多次)递归调用此函数,因此性能可能会大大降低。但这只是一个有根据的猜测,如果不对这些功能中执行的操作的复杂性有更多的了解,就无法回答。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有负数的嵌入式除法

来自分类Dev

带有嵌入式码头的招摇

来自分类Dev

使用SVGKit渲染带有嵌入式Base64编码的png图像的SVG会占用大量内存

来自分类Dev

使用SVGKit渲染带有嵌入式Base64编码的png图像的SVG会占用大量内存

来自分类Dev

使用pyplot在Python中绘制带有嵌入式if语句的lambda

来自分类Dev

我可以在带有嵌入式Linux的ToradexT30上使用python吗?

来自分类Dev

带有嵌入式API密钥的静态API文档

来自分类Dev

带有多个嵌入式图标的EXE

来自分类Dev

发送带有嵌入式图像的电子邮件

来自分类Dev

Hibernate抛出带有嵌入式ElementCollection的ConcurrentModificationException

来自分类Dev

带有Java EE 7 WebSocket的嵌入式tomcat

来自分类Dev

带有插件的Cordova 3.5嵌入式Webview

来自分类Dev

带有嵌入式MonthCalendar问题的UserControl

来自分类Dev

Restangular:带有包含嵌入式数组的对象的getList

来自分类Dev

Perl解析带有嵌入式逗号的CSV文件

来自分类Dev

带有嵌入式数据透视表的多对多

来自分类Dev

带有嵌入式ElementCollections的JPA CriteriaBuilder

来自分类Dev

带有嵌入式数据透视表的多对多

来自分类Dev

在ODM上还原带有嵌入式文档的文档

来自分类Dev

带有嵌入式表的动态SQL

来自分类Dev

带有Java EE 7 Websocket的嵌入式tomcat

来自分类Dev

带有嵌入式javascript的自动pdf打印

来自分类Dev

带有嵌入式API密钥的静态API文档

来自分类Dev

带有邮戳API的嵌入式图像附件

来自分类Dev

带有嵌入式HTML和验证的XML模式

来自分类Dev

打印带有嵌入式图像的Jira问题?

来自分类Dev

带有表单域的PDF文档的嵌入式签名

来自分类Dev

带有嵌入式 ActiveMQ Broker 的 Spring Boot WebSocket

来自分类Dev

访问嵌入式功能中的功能

Related 相关文章

热门标签

归档