美文网首页
dex2oat进程优化

dex2oat进程优化

作者: momxmo | 来源:发表于2021-01-27 15:04 被阅读0次

    1、问题描述:
    Tv端安装带插件App(微视听)启动,短期时间端内导致CPU消耗过大,从而导致其他进程system_server、PakeageInstaller等进程响应慢,PakeageInstaller出现ANR;

    2、问题分析:
    微视听app启动后,执行插件(apk、dex、jar)文件classLoader加载,导致系统对apk、dex、jar进行优化,会触发dex2oat进程对其进行优化,dex2oat默认启动的线程池数量为CPU核心数量,导致CPU被占满(adb shell top -m 8)可以查看进程使用cpu情况;
    这个时刻,微视听申请用户授权,pageageInstaller程序弹窗显示,同一时刻运行的进程有(占用资源大的):dex2oat、system_server、微视听、pageageInstaller;
    注意点:pageageInstaller授权通过system_server进程binder通讯,主线程被挂起

    3、优化方案:
    ①pageageInstaller授权Binder通讯的代码使用线程调用,避免主线程被挂起
    ②dex2oat进程控制线程池数量,设置为CPU核心数量的一半;
    art/dex2oat/dex2oat.cc line:507行

    - thread_count_(sysconf(_SC_NPROCESSORS_CONF)),
    + thread_count_(sysconf(_SC_NPROCESSORS_CONF)/2),
    

    方案②缺点:会导致apk在安装过程中,进行dex优化的过程变慢,从而安装时间边长

    相关文章

      网友评论

          本文标题:dex2oat进程优化

          本文链接:https://www.haomeiwen.com/subject/rnlazktx.html