Ios iAd&;AdMob内存不足

Ios iAd&;AdMob内存不足,ios,xcode,memory-management,admob,iad,Ios,Xcode,Memory Management,Admob,Iad,我刚刚完成为iOS平台编写的新游戏,现在我决定在屏幕底部集成iAd/AdMob横幅。我已经完成了实施,并且显示了一个iAd,如果它失败,那么它将被AdMob横幅替换。这很好,但我检查了应用程序的内存消耗情况,在iAd/AdMob集成之前,我的应用程序运行时使用了大约19MB的内存-通过iAd/AdMob集成,它运行时使用了超过50MB的内存。关于这一点,我有两个问题——他们是应该像这样记忆犹新,还是我做错了什么?其次,这些横幅视图似乎永远不会从记忆中释放出来。我尝试设置adBannerView=

我刚刚完成为iOS平台编写的新游戏,现在我决定在屏幕底部集成iAd/AdMob横幅。我已经完成了实施,并且显示了一个iAd,如果它失败,那么它将被AdMob横幅替换。这很好,但我检查了应用程序的内存消耗情况,在iAd/AdMob集成之前,我的应用程序运行时使用了大约19MB的内存-通过iAd/AdMob集成,它运行时使用了超过50MB的内存。关于这一点,我有两个问题——他们是应该像这样记忆犹新,还是我做错了什么?其次,这些横幅视图似乎永远不会从记忆中释放出来。我尝试设置adBannerView=nil,然后设置[adBannerView removeFromSuperview],但仍然没有任何效果,内存也没有减少。F.Y.I-我的游戏已启用ARC


在此问题上的任何帮助都将不胜感激!谢谢。

您观察到的内存增长是WebKits对堆贡献的结果。这种不幸的行为引起了许多愤怒。如果您尝试使用自己的web视图加载横幅,您会发现类似的行为。也有类似的讨论,开发人员被困在一场徒劳的战争中,试图减少web加载对内存的影响

我个人还没有使用iAds,但我非常熟悉iOS上的谷歌广告集成,我们看到在实施后内存显著增加

TL;博士

你应该考虑观察调试内存表,模拟内存警告,然后你的用法应该会下降。在我遇到的大多数情况下,WebKit在删除其内存缓存方面做得相当不错


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

您应该使用工具进行分析,以便查看广告的保留计数。我的猜测是,由于他们加载HTML内容,您实际上看到WebKit堆正在增长retained@DanielGalasko所以我在想,在我这一方面我无能为力。如果我想要横幅广告和插页广告,那么我需要承认它们会占用大量的内存。我们在处理谷歌横幅广告时遇到了同样的情况。如果你不介意,我会将此作为答案发布:)