当用仪器(寻找内存泄漏)分析我的应用程序时,iOS 5 iPhone模拟器与我的iPhone 4运行iOS 5。第一图显示从与实际设备中的分析结果,并且第二个是与所述模拟器:用仪器分析内存泄漏 - iPhone 4和iOS 5之间的巨大差异模拟器
真实设备:
iOS 5的模拟器:
此配置文件带到了同一个点,在这两种情况下的应用:viewDidLoad中完成在RootViewController的认为生命周期。我已经等待了他们的总分配内存稳定。正如您在设备图表中看到的,在00:10左右会出现一些极端波动,这些波动在模拟器中不存在。在真实的设备上,总分配的内存在00:08左右,从1MB跳到3.5 MB,然后回到1.5 MB,最后跳到4.74,在那里稳定下来。模拟器的分配内存更加线性,稳定并迅速攀升至2.35 MB左右,稳定下来。
要注意的另一件事是设备上存在2.25 MB的已分配内存,而不是来自malloc的模拟器和CFNumber的700+ KB。由于我对使用仪器和分析相对比较陌生,我不确定这是否正常。 Google的快速搜索没有任何明确性。这超过了2.25 MB和700 KB,弥补了内存分配的差异。为了平衡,在模拟器测试中存在不同数量的内存的malloc中有更多的项目不存在于设备测试中。
而且,我发现,当第二UIViewController中被压入堆栈的UINavigationController,分配的内存跳转到约8.5-9 MB在实际设备上,但只有约4.5至4.5,也许兆在模拟器上衣。
我知道预计该设备的性能与模拟器有很大不同,但是由于两个设备上运行的代码相同,所以内存分配不是很相似?我会理解,如果这是性能分析,但对于内存分配,似乎这些数字应该非常相似。任何人都可以阐明这是否正常?
任何与硬件相关的东西(CPU,内存,声音......)都不相信模拟器。应用名称时,“模拟器”不是“模拟器”(仿真实际设备行为)。另外需要注意的是,当你在模拟器中进行午餐时,应用程序实际上被编译为桌面应用程序(它可以在Mac上本地运行),使用活动监视器可以看到它正在运行 – Andy
您应该发现* leaks *是相同的双方。 –