gpt4 book ai didi

ios - Flurry 分析 - NSAutoreleasePool allocWithZone :] - memory leak after upgrading to Objective-C ARC

转载 作者:行者123 更新时间:2023-11-29 13:44:20 25 4
gpt4 key购买 nike

我最近刚刚将我的项目升级到带有 ARC(自动引用计数)的 iOS 5,现在我在后台暂停应用程序后,Instruments 报告 NSAutoreleasePool 内存泄漏。

根据这两个 API 调用的堆栈跟踪,我怀疑泄漏是由 Flurry Analytics 引起的:

+[FlurrySession sendSessionsToServerForSessionPause]
+[FlurrySession sendSessionsToServerWithTimeout:useWebView:requestAppCircleAds:requestVideoAds:requestAppSpotAds:sendCurrentSession:]

我不会在挂起时进行任何 Flurry API 调用。唯一需要 flurry 的是

[FlurryAnalytics startSession:<my id>];

应用首次启动时。

报告泄漏

Leaked Object   #       Address     Size        Responsible     Library Responsible Frame

NSAutoreleasePool,1 0x7693f600 32 Bytes Foundation +[NSAutoreleasePool allocWithZone:]

堆栈跟踪

  10 libsystem_c.dylib thread_start
9 libsystem_c.dylib _pthread_start
8 Foundation __NSThread__main__
7 Foundation -[NSThread main]
6 iSURVEY +[FlurrySession sendSessionsToServerForSessionPause] /Developer/Applications/iPhoneAdAgent_modular/Classes/FlurrySession.m:931
5 iSURVEY +[FlurrySession sendSessionsToServerWithTimeout:useWebView:requestAppCircleAds:requestVideoAds:requestAppSpotAds:sendCurrentSession:] /Developer/Applications/iPhoneAdAgent_modular/Classes/FlurrySession.m:962
4 CoreFoundation +[NSObject(NSObject) alloc]
3 Foundation +[NSAutoreleasePool allocWithZone:]
2 CoreFoundation +[NSObject(NSObject) allocWithZone:]
1 libobjc.A.dylib class_createInstance
0 libsystem_c.dylib calloc

编辑:

我只是尝试关闭所有像僵尸一样的调试变量,内存泄漏仍然完全一样。

编辑 2:

好的,我已经确认这绝对是 Flurry 问题。移除通话后

[FlurryAnalytics startSession:<my id>];

我不再遇到内存泄漏问题。

我会向 Flurry 团队提交错误。

最佳答案

我看到同样的 32 字节泄漏。我正在考虑以这种方式发布它,并等待更新。一次 32 字节泄漏似乎不是什么大问题。我只在 App 注册到 Flurry 时看到它,而不是每次任务从后台出来时。我使用 Flurry 版本 3.0.2 和 iOS 5.0 作为基础 SDK,目标是 iOS 4.1

查看 Flurry 文档,您似乎可以将其设置为仅在应用程序启动时报告。

在你之前

[FlurryAnalytics startSession:id];

添加以下两个调用:

[FlurryAnalytics setSessionReportsOnCloseEnabled:NO];
[FlurryAnalytics setSessionReportsOnPauseEnabled:NO];

文档说“OnPause”在默认情况下是关闭的,但可以肯定的是它不会有什么坏处。

我还向 Flurry 提交了错误报告。

关于ios - Flurry 分析 - NSAutoreleasePool allocWithZone :] - memory leak after upgrading to Objective-C ARC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8030795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com