Memory management 这堆垃圾是什么意思?

Memory management 这堆垃圾是什么意思?,memory-management,memory-leaks,instruments,heapshot,Memory Management,Memory Leaks,Instruments,Heapshot,我一直在拍某个过程的照片。所有快照中的所有泄漏对象都源自此方法: - (void)setArticle:(Article *)article { if (_article != article) { [self.navigationController popToViewController:self animated:YES]; [_article removeObserver:self forKeyPath:kArticleObservati

我一直在拍某个过程的照片。所有快照中的所有泄漏对象都源自此方法:

- (void)setArticle:(Article *)article
{
    if (_article != article)
    {
        [self.navigationController popToViewController:self animated:YES];

        [_article removeObserver:self forKeyPath:kArticleObservationKey];
        [_article release];
        _article = [article retain];

        [_article addObserver:self forKeyPath:kArticleObservationKey options:NSKeyValueObservingOptionNew context:&__ArticleObservingContext];

        [_article loadIfNeededWithPriority:OGRequestPriorityHigh downloadAllImage:NO];
        [_article fetchRelatedStories];
    }

    [self resetArticleView]; // 65% of heapshot allocations

    if ([_article.isStub boolValue])
    {
        [self.view showSpinner];
    }

    if (_article)
    {
        [Analytics articleReadWithParmeters:[NSDictionary dictionaryWithObject:_article.idOnServer forKey:AnalyticsKeyArticleId]]; // 32% of heapshot allocations
    }
}
这是实际的堆照片,它们看起来都一样:

我有几个问题:

  • 我的下一步是什么?我看不出这个方法有任何漏洞,为什么它在堆照中如此突出
  • [self resetArticleView]
    旁边有一点65%,但我泄漏的对象的堆栈跟踪中没有显示该特定方法。我是否误解了65%这一特定指标的含义?如果它确实意味着它包含65%的泄漏分配,为什么该方法不在任何堆栈跟踪中

  • 在分配工具中启用“保留事件跟踪”,查看保留对象的内容

    你可能会发现这也很有趣

    请注意,泄漏点和分配点可能不相同,这就是为什么您将看到在任何当前回溯中都没有显示的方法;该方法可能是分配的来源,但泄漏本身是由于其他地方的过度保留


    (我不确定您指的是什么%——有截图吗?

    在分配工具中启用保留事件跟踪,查看保留对象的内容

    你可能会发现这也很有趣

    请注意,泄漏点和分配点可能不相同,这就是为什么您将看到在任何当前回溯中都没有显示的方法;该方法可能是分配的来源,但泄漏本身是由于其他地方的过度保留


    (我不确定你指的是什么%——有截图吗?

    这就是我需要的。所有的对象都在我们的分析框架内泄漏,因此它们实际上是无法触及的。当你在这里时,你能告诉我
    [self resetArticleView]
    旁边的“65%”是什么意思吗?在heapshot中找到的对象都不是来自该方法。那个数字表示什么?我在哪里打开“保留事件跟踪”?我在分配工具中似乎找不到这个选项。每次我试图看到一个物体的历史,我似乎什么也找不到。这就是我所需要的。所有的对象都在我们的分析框架内泄漏,因此它们实际上是无法触及的。当你在这里时,你能告诉我
    [self resetArticleView]
    旁边的“65%”是什么意思吗?在heapshot中找到的对象都不是来自该方法。那个数字表示什么?我在哪里打开“保留事件跟踪”?我在分配工具中似乎找不到这个选项。每次我试图看到一个物体的历史,我似乎什么也找不到。