在以前版本的仪器中,我没有问题,但由于某种原因,现在(v6.2)Allocations不会列出我的应用程序的任何对象。 我试过debugging和释放模式: 请注意,filter“VC”应该捕获所有的ViewControllers。 没有filter… 有任何想法吗?
请帮我追踪一下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媒体播放源播放时没有结束时间。
我已经构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 […]
我运行Instrument检查我的应用程序中的Leaks 。 每次启动都会得到1次新的泄漏[SKPaymentQueue canMakePayments] ,即使没有付款的代码被调用。
我观看了苹果的WWDC 2010video高级内存分析仪器,从那里,我能够find很多居民脏记忆。 我意识到,有这么多居民脏的记忆是一件坏事(也许是我的应用程序崩溃了这么多的解释…),但我不知道如何解决它。 我应该在哪里看? 仪器向我展示了很多可能有用的信息,这些信息对我来说看起来就像是胡言乱语,比如: % of Res Type Resident Size 18% VM_ALLOCATE (8192 pages) 32.00 MB 这是在“脏”类别 – 32 MB的常驻脏内存是一个只有256 MB的设备很多,对吧? :)有几个这样的大块。 我如何追溯到我的仪器的代码? 或者我应该忘记仪器,并在我的代码中寻找具体问题?
我正在使用仪器检查我的应用程序泄漏,我正在学习如何读取泄漏周期数据。 我在我的一个漏洞里得到这个图表: 图表的含义是什么? 什么意思是“没有伊娃”? 谢谢 沙尼
我试图使用AFNetworking 2.5下载大量的图像,并将它们传输到磁盘。 根据Xcode中的内存监视器,这导致无限的内存增长(并最终导致内存警告和强制退出) – 但使用分配工具分析内存使用情况显示内存使用情况稳定。 我想在这里认为Xcode是错误的,但是为什么我的应用程序会被iOS杀死? 仪器显示 – 峰值是核心数据查询,其余的是图像下载 – 峰值约9.5MB,其余约8.5MB 我也试过了Heapshot Analysis–它显示了一点点的增长,但是在Xcode所报告的数量之外 Xcode的内存监视器显示了这一点 – 每次迭代多MB。 有什么办法让仪器向我展示无论Xcode看到什么? 还是有一个更好的工具来找出所有这些内存在哪里? 谢谢!
我有一个自助服务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。