Tag: 工具

仪器>分配不显示应用程序类/对象

在以前版本的仪器中,我没有问题,但由于某种原因,现在(v6.2)Allocations不会列出我的应用程序的任何对象。 我试过debugging和释放模式: 请注意,filter“VC”应该捕获所有的ViewControllers。 没有filter… 有任何想法吗?

iOS的libsystem_c.dylib strdup内存泄漏NSZombie无法正常工作

请帮我追踪一下iOS内存泄漏。 谢谢! 我正在使用xCode 4.0.1,我试图激活NSZombie来跟踪内存泄漏,但似乎没有像以前一样工作,使用xCode 3.x 我无法找出内存泄漏的来源,仪器指出: 泄漏对象 – > GeneralBlock-32地址 – > 0x4c8600大小 – > 32字节负责的库 – > libsystem_c.dylib负责的帧/调用者 – > strup 在这一点上,我不知道如果我用NSZombie使用正确的方式与xCode 4,因为它不显示NSZombie选项,当我点击“我”的更多信息,在左边选项泄漏 。 观察 :我的iPhone应用程序播放实时streammms / wma以及有限时间的wmaáudio文件。 这个泄漏只发生在一个有限的wma文件中,但是当我从一个stream媒体播放源播放时没有结束时间。

了解iOS上的仪器内存分配日志

我已经构build了一个即将完成的iOS应用程序,然而,由于“内存压力”,我最近经历了一段时间后崩溃。 所以我开始分析仪器中的内存分配情况,当然,这个应用程序确实使用了相当多的内存,而且在使用过程中似乎只会增加。 然而,相对较新的仪器内存分配我不能解码52%的分配,如下面的截图所示: 它显然与Core Animation有关,但是我确定的确难以确定,所以我认为那里有一些聪明的人可能知道答案。 面包屑: 我的应用程序使用自定义segues,当在视图控制器之间移动,其中有很多的animation正在发生。 这里是一个例子: @interface AreaToKeyFiguresSegue : UIStoryboardSegue @end … @implementation AreaToKeyFiguresSegue – (void)perform { [self sourceControllerOut]; } – (void)sourceControllerOut { AreaChooserViewController *sourceViewController = (AreaChooserViewController *) [self sourceViewController]; KeyFigureViewController *destinationController = (KeyFigureViewController *) [self destinationViewController]; double ratio = 22.0/sourceViewController.titleLabel.font.pointSize; sourceViewController.titleLabel.adjustsFontSizeToFitWidth = YES; [UIView animateWithDuration:TRANSITION_DURATION delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ // Animate areaChooser sourceViewController.areaChooserScrollView.alpha […]

skpaymentqueue canmakepayments内存泄漏检查

我运行Instrument检查我的应用程序中的Leaks 。 每次启动都会得到1次新的泄漏[SKPaymentQueue canMakePayments] ,即使没有付款的代码被调用。

我怎样才能摆脱Objective-C中的常驻脏内存?

我观看了苹果的WWDC 2010video高级内存分析仪器,从那里,我能够find很多居民脏记忆。 我意识到,有这么多居民脏的记忆是一件坏事(也许是我的应用程序崩溃了这么多的解释…),但我不知道如何解决它。 我应该在哪里看? 仪器向我展示了很多可能有用的信息,这些信息对我来说看起来就像是胡言乱语,比如: % of Res Type Resident Size 18% VM_ALLOCATE (8192 pages) 32.00 MB 这是在“脏”类别 – 32 MB的常驻脏内存是一个只有256 MB的设备很多,对吧? :)有几个这样的大块。 我如何追溯到我的仪器的代码? 或者我应该忘记仪器,并在我的代码中寻找具体问题?

在xCode仪器泄漏周期图上显示“no ivar”

我正在使用仪器检查我的应用程序泄漏,我正在学习如何读取泄漏周期数据。 我在我的一个漏洞里得到这个图表: 图表的含义是什么? 什么意思是“没有伊娃”? 谢谢 沙尼

iOS内存使用量增加,找不到罪魁祸首

我试图使用AFNetworking 2.5下载大量的图像,并将它们传输到磁盘。 根据Xcode中的内存监视器,这导致无限的内存增长(并最终导致内存警告和强制退出) – 但使用分配工具分析内存使用情况显示内存使用情况稳定。 我想在这里认为Xcode是错误的,但是为什么我的应用程序会被iOS杀死? 仪器显示 – 峰值是核心数据查询,其余的是图像下载 – 峰值约9.5MB,其余约8.5MB 我也试过了Heapshot Analysis–它显示了一点点的增长,但是在Xcode所报告的数量之外 Xcode的内存监视器显示了这一点 – 每次迭代多MB。 有什么办法让仪器向我展示无论Xcode看到什么? 还是有一个更好的工具来找出所有这些内存在哪里? 谢谢!

我如何追踪记忆峰值? (这是ap的峰值,而不是l)

我有一个自助服务terminal应用程序,基本上显示了一大堆幻灯片,上面有各种各样的信息。 我最初是从一年前开始编写这个代码的,当时我开始使用Objective-C和iOS开发。 我发现我的代码风格比现在更清晰,而且我更有经验,所以我决定从头开始重写。 我使用Allocations工具运行我的应用程序,以查看内存使用情况。 考虑到这是一个信息亭应用程序,一切都需要平稳运行,没有泄漏。 (当然,所有的应用程序都需要运行,没有泄漏,但是一个自助服务terminal应用程序使得这个更重要的目标。)我看到了一些有趣的结果,所以我运行了旧版本的代码。 运行旧版本的代码,我发现内存使用量大约为1.15 MB。 似乎所有东西都可以根据需要分配和释放。 然而,在我的新实现中,我看到了一些不同的东西。 内存使用量一直在“高原”中跳跃,最终似乎达到了1.47兆字节的使用率。 以下是运行超过10小时后的新分配报告的外观: 我担心几个原因。 在运行开始的奇怪模式。 分配似乎达到了1.47兆字节的高峰,但在一夜之间运行表明,随着时间的推移,它实际上会慢慢地使用越来越多的内存。 这不是一件好事。 旧项目和新项目之间有几个显着的差异。 较旧的使用Plist作为后备存储(我手动读取和写入plist文件)。新项目使用核心数据。 新项目实现了旧项目没有的每个“幻灯片”上调用的库。 我会更关心这个图书馆,除了我写的,我经历了它,以确保我释放的一切,只有自动释放,无论手动释放是不可能的。 这两个类都使用工厂类来创build幻灯片。 在旧项目中,工厂class是一个单身人士。 我认为把它变成一个普通的class级将有助于解决记忆问题,因为单身人士从未被释放。 (因此它的属性没有被释放。在新的项目中,工厂类正在被释放,所以我不知道为什么它仍然占用了所有的内存(如果这是什么原因造成的问题。 旧项目在各个地方使用string常量。 新的代码使用一个巨大的枚举相同的事情。 (新的代码通常使用更多的常量。) 我能做些什么来追踪记忆峰值? 内存全部被应用程序清除,当它丢弃它所使用的任何内容时,但在应用程序终止之前似乎没有放弃任何东西。 如果有人能帮助我指出正确的方向,我将不胜感激。 编辑: 看起来高峰是由对KosherCocoa图书馆的调用造成的。 如果有人会介意看看它,并告诉我我在做什么错,只要内存pipe理,我真的很感激它。

使用堆分析显示内存地址,而不是代码行。 如何确定导致堆增长的原因?

我几乎完成了我的应用程序,我使用仪器优化性能之前,我提交到应用程序商店。 我注意到,每当我执行一个特定的动作(从外部服务器更新我的应用程序中的信息),我的堆增长了大约350 KB。 我在这里find的关于stackoverflow和苹果文档的研究表明,执行Heap Shot来find有问题的代码。 然而,而不是带我去违规的代码,它显示我的内存地址。 有没有办法使用这些信息? 或者我应该使用另一种工具? 我很新的仪器,所以我感谢任何帮助。 我会显示一个截图,但我的名声还不够高。

使用仪器工作通过低内存警告

我正试图通过使用仪器的一些低内存条件。 即使Allocations显示All Allocations大约为3 MB,总体字节数为34 MB,我也可以在Physical Memory Free监视器中查看内存消耗,下降到几MB。 我已经开始遇到崩溃,因为我把一些操作移动到一个NSOperationQueue单独的线程。 但是在改变之前我没有使用仪器。 不过,我敢打赌,我做了一些我可以撤消的事情来阻止事故的发生。 顺便说一句,没有仪器或debugging器连接,它是更加稳定。 我有泄漏到几乎没有(可能在崩溃前最多100个字节)。 当我看到分配时,我只看到非常原始的对象。 而且它报告的总内存也非常低。 所以我不能看到我的应用程序如何导致这些低内存警告。 当我从一开始就看堆射击时,在基线和所有堆增长值的总和之间,我看不到超过3 MB。 我应该看什么来找出问题所在? 我可以将它隔离到我的一个视图控制器实例,例如? 或者对我的其他实例之一? 我做了什么:我closures了设备,然后重新启动,这样做有了很大的改进。 仪器不报告低内存警告。 另外,我注意到启动时的物理可用内存在重新启动之前只有大约7 MB,重新启动后大约60 MB。 但是,我看到物理可用内存的规模(周期性)下降,从43 MB降至6 MB(然后又回升至43 MB)。 我想知道是什么造成的。 我没有任何计时器在这个应用程序中运行。 (我有一些performSelector:afterDelay:,但这些testing过程中不活动。) 我没有使用ARC。