ios – 如何使用Xcode中的工具检查堆内存?

ios – 如何使用Xcode中的工具检查堆内存?,第1张

概述我试图用 Xcode中的仪器分析泄漏.这是我正在尝试的示例代码. +(NSString *) getUniqueFileName{NSDate *time = [NSDate date];NSDateFormatter* df = [NSDateFormatter new];[df setDateFormat:@"MMddyyyyhhmmssSSS"];NSString *timeStr 我试图用 Xcode中的仪器分析泄漏.这是我正在尝试的示例代码.

+(Nsstring *) getUniquefilename{NSDate *time = [NSDate date];NSDateFormatter* df = [NSDateFormatter new];[df setDateFormat:@"MMddyyyyhhmmssSSS"];Nsstring *timeString = [df stringFromDate:time];Nsstring *filename = [Nsstring stringWithFormat:@"%@",timeString ];//[time release];// [df release];// [timeString release];return  filename ;}

我每次捕获照片时都会使用此方法生成文件名.所有变量都是他的方法的本地变量.如果我尝试释放时间,df,timestring,在获取文件名后,我将消息发送到解除分配的实例.我确信如果我不释放这些变量,内存将会泄漏.我尝试使用乐器,得到了以下结果,就在这里.

现在我的问题是红色突出显示行的含义为79.6%? 20.4%的黄色行突出显示?一般来说红色会很危险.但%显示了什么?如何计算?当我检查调用树时,我会得到一个名为“Leaks”的列用于特定方法,并将包含100,234,560,2345,一些数字.这个数字是怎么说的.帮帮我.如果有人能为我提供理解仪器的良好链接,将会感激不尽.

解决方法 为了解释屏幕截图中的百分比,在getUniquefilename:中分配的泄漏内存中有79.6%是在红色代码行中分配的.在getUniquefilename:中分配的泄漏内存的20.4%是在黄色代码行中分配的.红色表示高百分比.它可能是也可能不是危险的.

为了解释Leaks列,它会告诉您方法中的泄漏次数以及方法调用的任何函数.它并不一定意味着方法本身存在许多泄漏.例如,Cocoa和Cocoa touch应用程序以main()函数开头.如果main()函数在Leaks列中的值为100,则表示应用程序有100个内存泄漏,而不是main()有100个泄漏.

总结

以上是内存溢出为你收集整理的ios – 如何使用Xcode中的工具检查堆内存?全部内容,希望文章能够帮你解决ios – 如何使用Xcode中的工具检查堆内存?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1020989.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存