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中找到的对象都不是来自该方法。那个数字表示什么?我在哪里打开“保留事件跟踪”?我在分配工具中似乎找不到这个选项。每次我试图看到一个物体的历史,我似乎什么也找不到。