Android 内存相关

2016-04-19  本文已影响50人  CatDog118

Linux OOMKiller

1. 进程消耗的内存
2. 进程占用CPU的时间
3. oom_adj(OOM权重/proc/PID/oom_adj)

根据以上因素,系统会实时给每个进程评分,已决定OOM时应该杀死哪些进程。oom_score分数越高被杀死的几率越大

Andriod Low Memory Killer

当内存小于6M时,Killer需要清理adj值为0的进程

lowmen_adj 描述 lowmen_minfree
0 当前正在前台运行的进程 6M
15 空进程

LargeHeap

/system/build.prop文件中记录了内存配置,AMS可以查看

// 堆得初始大小
dalvik.vm.heapstartsize=8m
// 标准堆得最大大小
dalvik.vm.heapgrowthlimit=192m

// 使用largeHeap的最大大小
dalvik.vm.heapsize=512m

// 当前存活对象 / 堆大小
dalvik.vm.heaptargetutilization=0.75

// 单次堆内存调整最小值
dalvik.vm.heapminfree=512k
// 单次堆内存调整最大值
dalvik.vm.heapmaxfree=8m
上一篇 下一篇

猜你喜欢

热点阅读