Ios iPad 1上的应用程序分配是iPad 2的4倍

Ios iPad 1上的应用程序分配是iPad 2的4倍,ios,memory,profiling,Ios,Memory,Profiling,当我在iPad2上评测我的应用程序时,它的内存分配略低于1MB。当我在iPad1上做同样的操作时,它的负载大约为4MB。两者都更新为相同的iOS版本。这是正常的行为吗?如果是这样,我能做些什么吗?是的,这是一种正常的行为。这也取决于设备类型。例如,如果你分析3G、3GS、4、4S手机的内存,你会得到不同的结果。这不应该是一个问题,除非它随着应用程序的使用而频繁增长。您使用的操作系统是什么?您启用了ARC吗?我要调查的一个可能性是应用程序存储资源的位置。iPad2无疑有更多用于纹理、声音ram等的

当我在iPad2上评测我的应用程序时,它的内存分配略低于1MB。当我在iPad1上做同样的操作时,它的负载大约为4MB。两者都更新为相同的iOS版本。这是正常的行为吗?如果是这样,我能做些什么吗?

是的,这是一种正常的行为。这也取决于设备类型。例如,如果你分析3G、3GS、4、4S手机的内存,你会得到不同的结果。这不应该是一个问题,除非它随着应用程序的使用而频繁增长。您使用的操作系统是什么?您启用了ARC吗?

我要调查的一个可能性是应用程序存储资源的位置。iPad2无疑有更多用于纹理、声音ram等的vram。因此,它可能将这些资源存储在硬件上,而iPad1必须将它们存储在主机内存中,并根据需要上传。测试这一点的一个快速方法是对您的资源进行抽样,看看它对iPad1的影响是否大于对iPad2的影响,如果是,那么这是一个合理的解释


例如,如果您有8MB的图形,而iPad1有4MB的vram可用于纹理,而iPad2有7MB可用于纹理,那么iPad1将在vram中存储4MB的纹理,并将其他4MB保留在主机ram中,而iPad2将在vram中存储7MB的纹理,并将其他1MB保留在主机ram中。

听起来真奇怪,您的应用程序是否使用浮点代码/矩阵等?应用程序首次加载时不使用,加载后很少使用。因此,大量的寄存器已用完。在一天结束时,只分配内存,大部分内存可能不会被积极使用。因此,这不会有太大的区别。尝试从项目中删除图像/媒体,并查看内存。也许iPad1使用的是@2x图像,iPad2使用的是1x图像?这可以解释4倍的内存使用率,但似乎不太可能。@Ninja,这是不可能的。只有新款iPad有视网膜显示屏。