不懂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 (将#修改为@)