arm6设备显示出更高的内存使用率



我在MonoTouch中构建了一个应用程序,它适用于arm6和arm7设备,我尽可能小心使用内存,在arm7设备上它运行得很好-通过苹果仪器程序运行它,我可以在分配工具中看到平均"活字节"约为4MB。

然而,在arm6设备(iPhone 3G、iPod touch第二代)上,它显示的内存使用量约为22MB,经常发出内存不足的警告,显然最终会崩溃。

与3GS(arm7)设备相比,是否有任何构建设置或任何特定的事情可能导致该应用程序在3G设备上的内存占用率如此之高?这尤其令人沮丧,因为这些设备无论如何都有足够的内存。

感谢您抽出时间,

利亚姆

这是一个巨大的差异!

我的最佳猜测是,苹果仪器误报了正在使用的内存(无论是哪种情况还是两种情况),事实上,两者的实际内存要求要接近得多。

在这种情况下,较旧的armv6设备的RAM较少,并且会在较新的armv7(具有更多RAM)设备之前发出内存不足警告。IOW您看到的行为可能是正常的,即您可能接近旧设备的极限。

现在,它也可能是一个bug或其他配置,在您的构建之间有所不同(例如,调试发布构建)。如果你能与我们(Xamarin)分享(或创建一个测试用例)这将是有帮助的,这样我们就可以尝试重现这个问题。

注意

我假设您谈论的是在不同设备上使用的单个armv6应用程序。但是,即使您使用不同的构建(一个用于arm6,一个用于armv7或fat应用程序),这也只会影响本机代码生成。因此,它将影响二进制大小,但不应对应用程序的运行时内存需求产生(巨大)影响。

最新更新