我一直在4台IOS设备上测试我的应用程序。 1 ipod touch 2g,1 iPhone 3gs,2 iPhone 4。在iPhone 4上,我的应用程序在运行时将占用大约30-50mb的内存。在3G上它将需要大约15-30mb,而在iPod上它将需要大约15-27mb的内存。
是否存在针对应用程序可以使用多少内存的规则?应用程序没有崩溃他们中的任何一个,但我想我读到某处,最大值是20mb的内存使用量?
坦率地说,我很惊讶iPod touch 2g可以运行这个东西,我被告知iPod 2g的最大价值就像是20 mb的ram。
现在我有另一个问题,在运行Instruments时,是否会在设备上添加任何内存使用量?看起来在运行仪器时,应用程序的滞后程度比不运行它时要多。
谢谢, 雅各布
答案 0 :(得分:10)
没有确切的限制。从技术上讲,您的应用程序可以使用“最多可用的内存总量”,但这个数量会因设备型号,iOS版本,后台运行的其他应用程序等等而有所不同。
一般来说,非常如果你想让你的应用程序在像iPhone 3G这样的旧设备上可靠地运行,你应该拍摄10-15 MB的RAM。对于较新的设备,30 + MB应该不是问题。这意味着虽然如果可以的话减少这个数量总是好的,但即使你不这样做,你的应用仍然可以正常运行。
另请注意,设备发送的内存警告不是很有用,或者表示特定的内存限制。他们并不是说你的应用程序在绝对意义上使用了太多内存。相反,他们只是说当前设备及其当前的应用程序工作集内存不足。如果您愿意,可以safely ignore them,让操作系统关闭其他一些应用程序,为您腾出空间。
关于滞后应用的乐器,乐器正在查询设备,以获取有关应用程序当前状态和其他历史信息的详细信息。收集和传递此信息会产生开销。但是,对于应用程序的空间要求的影响,它们应该可以忽略不计。
答案 1 :(得分:1)
当你达到22 MB时,通常会收到内存警告。仪器确实减慢了处理速度,但它不会在设备上增加任何额外的内存使用量。