iOS内存分析下-前台内存耗尽闪退(FOOM)

etsam模型

iOS使用的是低内存处理机制Jetsam,这是一个基于优先级队列的机制。相关的探究推荐这篇文章

Jetsam可以简单的抽象为:前台应用程序,在触发某个或多个条件时,触发系统事件,被系统kill掉。而OOM也就是因为触发了内存相关的系统事件,被系统kill掉了。

Memory Footprint

Footprint是苹果推荐的内存度量及优化的指标。而Memory Footprint的值达到Limit line时,就会触发内存警告,并进一步导致OOM,相关可以参考这条Stack Overflow。以下是摘抄的部分OOM时的Memory Footprint Limit Line。

device: (crash amount/total amount/percentage of total)

iPad1: 127MB/256MB/49%

iPad2: 275MB/512MB/53%

iPad3: 645MB/1024MB/62%

iPad4: 585MB/1024MB/57% (iOS 8.1)

iPad Mini 1st Generation: 297MB/512MB/58%

iPad Mini retina: 696MB/1024MB/68% (iOS 7.1)

iPad Air: 697MB/1024MB/68%

iPad Air 2: 1383MB/2048MB/68% (iOS 10.2.1)

iPad Pro 9.7 ": 1395MB/1971MB/71% (iOS 10.0.2 (14A456))

iPad Pro 10.5”: 3057/4000/76% (iOS 11 beta4)

iPad Pro 12.9” (2015): 3058/3999/76% (iOS 11.2.1)

iPad Pro 12.9” (2017): 3057/3974/77% (iOS 11 beta4)

iPod touch 4th gen: 130MB/256MB/51% (iOS 6.1.1)

iPod touch 5th gen: 286MB/512MB/56% (iOS 7.0)

iPhone4: 325MB/512MB/63%

iPhone4s: 286MB/512MB/56%

iPhone5: 645MB/1024MB/62%

iPhone5s: 646MB/1024MB/63%

iPhone6: 645MB/1024MB/62% (iOS 8.x)

iPhone6+: 645MB/1024MB/62% (iOS 8.x)

iPhone6s: 1396MB/2048MB/68% (iOS 9.2)

iPhone6s+: 1392MB/2048MB/68% (iOS 10.2.1)

iPhoneSE: 1395MB/2048MB/69% (iOS 9.3)

iPhone7: 1395/2048MB/68% (iOS 10.2)

iPhone7+: 2040MB/3072MB/66% (iOS 10.2.1)

iPhone X: 1392/2785/50% (iOS 11.2.1)

posted @ 2020-03-22 10:45  lulu晶  阅读(625)  评论(0)    收藏  举报