进程ADJ

背景

  系统运行,内存过低时,需回收内存。回收就需要判断进程优先级,ADJ代表进程优先级。

ADJ的详情

  内核 通过 proc文件系统,暴露 /proc/[pid]/oom_score_adj文件,来允许其他程序修改指定进程的优先级。值越小进程越重要。内存紧张时,系统会遍历所有进程,以确定杀死哪个进程,回收内存,此时会读取 oom_score_adj 文件的值。

  ProcessList.java中预定义了 oom_score_adj 的一些值。

 public static final int INVALID_ADJ = -10000;//进程刚启动时
 public static final int UNKNOWN_ADJ = 1001;
 public static final int CACHED_APP_MAX_ADJ = 999;//不可见进程的adj最大值
 public static final int CACHED_APP_MIN_ADJ = 900;//不可见进程的adj最小值
 public static final int VISIBLE_APP_ADJ = 100;//可见进程
 public static final int FOREGROUND_APP_ADJ = 0;//前台进程
 public static final int SYSTEM_ADJ = -900;//system_serve进程
 public static final int NATIVE_ADJ = -1000;//native进程,由init进程fork出来,不受system管控
ProcessList.java

ADJ查看

1.'ps | grep 包名'  //查看app的进程号
2.cat /proc/进程号/oom_adj  //查看进程的adj值(现已废弃,但仍然有效)
3.cat /proc/进程号/oom_score_adj  //新版本查看adj,adj有效值为-1000~1000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值