问题描述
我正在寻找代码中的内存泄漏。首先我想了解如何解释结果,所以我创建了一个小测试程序。
我创建了一个对象,然后在循环中调用了相同的方法。调用的方法中没有局部变量,所以我不希望其中有任何 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 (将#修改为@)