ios - iAd 和 AdMob 占用大量内存

标签 ios xcode memory-management admob iad

我刚刚完成了适用于 iOS 平台的新游戏的编码,现在我决定是时候在屏幕底部集成 iAd/AdMob 横幅了。我已经完成了实现,iAd 正在显示,如果它失败,则会被 AdMob 横幅取代。这很好,但是我检查了应用程序的内存消耗,在 iAd/AdMob 集成之前,我的应用程序运行时使用了大约 19MB 的内存——通过 iAd/AdMob 集成,它运行时使用了超过 50MB 的内存。我对此有两个问题 - 他们应该像这样占用大量内存还是我做错了什么?其次,这些横幅 View 似乎永远不会从内存中释放出来。我已经尝试设置 adBannerView = nil 然后设置 [adBannerView removeFromSuperview] 但仍然没有任何反应并且内 stub 本没有减少。仅供引用 - 我的游戏启用了 ARC。

如有任何帮助,我们将不胜感激!谢谢。

最佳答案

您观察到的内存增长是 WebKits 对堆的贡献的结果。这种不幸的行为引起了很多愤怒。如果您尝试使用自己的 Web View 加载横幅,您会发现类似的行为。关于 SO 也有类似的讨论 this one , 和 this one开发人员陷入了一场徒劳的 war ,试图减少网络加载对内存的影响。

我个人还没有使用过 iAds,但我非常熟悉 iOS 上的 Google Ad 集成,我们看到实现后内存显着增加。

长话短说

话虽如此,您应该考虑观察调试内存量表,模拟内存警告,然后您的使用率应该下降。在我遇到的大多数情况下,WebKit 在移除其内存缓存方面做得不错。

但是,如果这些内存警告没有得到处理,您绝对应该寻求提交错误报告。

关于ios - iAd 和 AdMob 占用大量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26258273/

相关文章:

objective-c - 如何在 xcode 4 中通过一个操作归档多个目标

ios - 在 NSOperation 中设置 UIImage 时内存泄漏

ios - VoiceOver 读取表格标题两次并始终添加单词 "heading"

objective-c - 有没有办法只允许 UIViewControllers 遵守协议(protocol)?

iphone - 以编程方式更改 UITextField 键盘类型

ios - 如何重命名通讯录中的群组?

ios - iAd钛白色矩形然后消失

ios - 试图关闭 UIViewController 时出现奇怪的问题

multithreading - 达到特定核心数后出现严重的多线程内存瓶颈

在以下代码中找不到一个字节的内存泄漏