微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不懂python3 tracemalloc结果

如何解决不懂python3 tracemalloc结果

我正在寻找代码中的内存泄漏。首先我想了解如何解释结果,所以我创建了一个小测试程序。

我创建了一个对象,然后在循环中调用了相同的方法调用方法中没有局部变量,所以我不希望其中有任何 malloc。

  let query = textToSearch.replace(" ","+");
  let url = "https://www.google.com/search?q=" + query;
  await Webbrowser.openbrowserAsync(url);

下面的输出在第一个中重复 0 个字节,在下一个中重复 56 个字节


        self.mem,self.peak = tracemalloc.get_traced_memory()
        self.mem2,self.peak = tracemalloc.get_traced_memory()
        print ("Intro mem 0 = "+str(self.mem2-self.mem))
        self.DeltaMem = self.mem - self.MEM
        self.mem2,self.peak = tracemalloc.get_traced_memory()
        print ("Intro mem 1 = "+str(self.mem2-self.mem))
        self.mem2,self.peak = tracemalloc.get_traced_memory()
        print ("Intro mem 2 = "+str(self.mem2-self.mem))
        
        self.Counter = self.Counter + 1
        self.mem2,self.peak = tracemalloc.get_traced_memory()
        print ("Intro mem 3 = "+str(self.mem2-self.mem))
        if sys.version_info.major == 3:
            self.caller = inspect.stack()[1].function
            self.lineno = inspect.stack()[1].lineno
        else:
            self.caller = inspect.stack()[1][3]
            self.lineno = inspect.stack()[1][2]
        self.mem2,self.peak = tracemalloc.get_traced_memory()
        print ("Intro mem 4 = "+str(self.mem2-self.mem))
        self.cclass = self.__class__.__name__
        self.t = self.PrintClock.Time()
        self.MEM = self.mem
        self.mem2,self.peak = tracemalloc.get_traced_memory()
        print ("Intro mem 5 = "+str(self.mem2-self.mem))

前几次调用不同。我有点期望第一个呼叫具有非零数字,并且在前几次呼叫后稳定到这些数字。

另外,前两次调用 get_traced_memory 总是添加 28 个字节;为什么?

马哈罗

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。