当前位置: 首页 > wzjs >正文

自己想学做博客网站吗网站建设,h5,小程序

自己想学做博客网站吗,网站建设,h5,小程序,集团门户网站建设企业,包装设计网站排行榜前十名AOSP CachedAppOptimizer:应用进程长期处于 Cached 状态的内存压缩和冻结优化管控 冻结和内存压缩两个功能独立触发,可以单独触发也可以组合触发,默认顺序:先压缩,后冻结 public class OomAdjuster { protected b…

AOSP CachedAppOptimizer:应用进程长期处于 Cached 状态的内存压缩和冻结优化管控

冻结和内存压缩两个功能独立触发,可以单独触发也可以组合触发,默认顺序:先压缩,后冻结

public class OomAdjuster {    protected boolean applyOomAdjLSP(ProcessRecord app, boolean doingAll, long now,{        ...        if (state.getCurAdj() != state.getSetAdj()) {            //内存压缩            mCachedAppOptimizer.onOomAdjustChanged(state.getSetAdj(), state.getCurAdj(), app);        }        ...        updateAppFreezeStateLSP(app, oomAdjReson, false);        ...    }    void updateAppFreezeStateLSP(ProcessRecord app, @OomAdjReason int oomAdjReason,	...        if (state.getCurAdj() >= FREEZER_CUTOFF_ADJ && !opt.isFreezeExempt()   && !opt.shouldNotFreeze()) {              // 异步冻结	    freezeAppAsyncLSP(app); // 调用 mCachedAppOptimizer.freezeProcess	}        ...}public final class CachedAppOptimizer {    @GuardedBy({"mService", "mProcLock"})    void onOomAdjustChanged(int oldAdj, int newAdj, ProcessRecord app) {        if (useCompaction()) {            // Cancel any currently executing compactions            // if the process moved out of cached state            if (newAdj < oldAdj && newAdj < ProcessList.CACHED_APP_MIN_ADJ) {                cancelCompactionForProcess(app, CancelCompactReason.OOM_IMPROVEMENT);            }        }    }    void onProcessFrozen(ProcessRecord frozenProc) {        if (useCompaction()) {            synchronized (mProcLock) {                compactApp(frozenProc, CompactProfile.FULL, CompactSource.APP, false);            }        }        frozenProc.onProcessFrozen();    }}

行为模式

触发条件

资源压力/策略

只冻结,不压缩

-state.getCurAdj() >= FREEZER_CUTOFF_ADJ

-!opt.isFrozen()

-!opt.shouldNotFreeze()

- 内存充足但需省电

- 进程优先级未触发压缩阈值

newAdj ≥ CACHED_APP_MIN_ADJ

同时冻结+压缩

-oom_adj ≥ CACHED_APP_MIN_ADJ

- 进程未被取消压缩(!mPendingCompactionProcesses.contains(app)

- 内存碎片化严重(compact_full_rss_throttle_kb)

- 低电量模式

只压缩,不冻结

-oom_adj ≥ CACHED_APP_MIN_ADJ

-opt.isFreezeExempt()或

state.getCurAdj() < FREEZER_CUTOFF_ADJ

- CPU负载低

- 进程标记为不可冻结(如persistent)

不冻结也不压缩

-oom_adj < CACHED_APP_MIN_ADJ

- 或opt.shouldNotFreeze()

- 或压缩被取消(CancelCompactReason)

冻结(Freezer)策略与压缩交互

冻结(Freezer)和压缩(Compaction)的执行顺序是明确且不可随意调换的。默认顺序:先压缩,后冻结,冻结依赖压缩完成

冻结会将进程的内存页标记为不可移动(PG_dontdump),若先冻结再压缩,内核会跳过冻结进程的内存页,导致压缩失效。

场景

冻结状态

压缩状态

说明

进程刚进入缓存

❌ 未冻结

✅ 可压缩

优先触发FULL压缩,再根据资源压力决定是否冻结。

进程长期缓存

✅ 已冻结

❌ 不压缩

冻结后内存页标记为不可移动(PG_dontdump),避免压缩开销。

进程解冻后

❌ 解冻

✅ 可压缩

若仍满足缓存条件,可能触发新一轮压缩(需冷却时间)。

http://www.dtcms.com/wzjs/820022.html

相关文章:

  • 如何查看一个网站用什么程序做的优化网站的软件下载
  • 企业门户网站设计方案怎么建立网站平台
  • 南和网站seoddos的wordpress插件
  • php建设网站教程找个网页公司做网站
  • 用php做网站出现的问题wordpress魔板
  • 好的外贸网站的特征wordpress判断用法
  • 手机网站打不开是什么原因造成的建筑网站图片
  • wordpress 中英文切换seo网络推广企业
  • 网站开发年收入推广怎么做才可以赚钱
  • 网站建设邀标比选网站数据报表
  • 可以放友情链接的网站软件开发入门
  • 医疗网站建站需求wordpress制作主题容易吗
  • 浙江省住房和城乡建设厅 官方网站wordpress连接memcached
  • 免费建站网站一站式做骗子网站
  • 南宁建网站必荐云尚网络少儿编程免费网站
  • 免费网站去哪找自然堂网站建设情况
  • 浅析php网站建设的八大优势怎么给老板提供网站建设资料
  • 威海网站建设whhl门户型网站开发难度
  • 一诺千金 网站建设合肥 电子商务 网站建设
  • 郑州网站建设学习网站域名费用怎么做帐
  • 搭建网站的过程腾讯街景地图实景
  • 口碑好的网站建设商家淘宝做链接的网站
  • 做网站是怎么做的如何建网站赚取佣金
  • iss怎么做网站百度霸屏推广
  • 安阳360网站推广工具360免费建站永久免费
  • 设计汽车网站实惠福步外贸论坛
  • 整个网站的关键词温州微网站制作公司推荐
  • 网站开发工程师和软件工程建设网站需要会什么
  • 北京网站建设好吗驻马店怎么建设自己的网站
  • 个人怎么做微信公众号和微网站吗福州网站建设设计