zoukankan      html  css  js  c++  java
  • SWT 重启案例分析(四)

    极力推荐文章:欢迎收藏
    Android 干货分享

    阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android

    本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

    一、TimeoutException 导致系统重启Log
    二、TimeoutException 重启 trace 分析
    三、TimeoutException 导致的重启解决方案

    一、TimeoutException 导致系统重启Log

    TimeoutException 导致系统重启

    Systemserver TimeoutException

    二、TimeoutException 重启 trace 分析

    1090 线程 被线程134 held

    线程134 被线程 92 held

    线程 92 是卡住的主要原因 在

    从重启的Jave Exception trace看由于在ART GC时,如果检查到某个对象其所属的类型overridefinalize函数,会把这个对象添加到referenceQueue中。

    referenceQueueFinalizerDaemon线程监控,如果里面有内容,就会逐个取出并调用其finalize函数。

    这样在下一次GC的时候才真正的把这个对象占用的memory给回收掉。

    Java进程会默认等待10s,如果10s还没有执行完,进程会强制抛出TimeoutException

    一般是由于当时系统IO忙或者memory比较紧张,导致不能及时唤醒这个线程及时往下执行。

    三、TimeoutException 导致的重启解决方案

    TimeoutException 超时导致的系统重启,一般是由于当时系统IO忙或者memory比较紧张,没有太好的修改方案,只能增长超时时间,或者更换好一点的Memory

    增长时间的修改方案如下

    1. 修改 Daemons类

    主要修改 Daemons.java中的MAX_FINALIZE_NANOS 时间。
    Daemons类 路径如下:
    /libcore/libart/src/main/java/java/lang/Daemons.java

    private static final long MAX_FINALIZE_NANOS = 10L * NANOS_PER_SECOND;
    修改为:
    private static final long MAX_FINALIZE_NANOS = 15L * NANOS_PER_SECOND;
    
    2.修改 ActivityMangerService

    增长ActivityMangerService.java CONTENT_PROVIDER_PUBLISH_TIMEOUT 的时间。

    ActivityMangerService类路径如下:
    frameworksaseservicescorejavacomandroidserveramActivityMangerService.java

     static final int CONTENT_PROVIDER_PUBLISH_TIMEOUT = 10*1000;
     修改为
     static final int CONTENT_PROVIDER_PUBLISH_TIMEOUT = 15*1000;
    

    至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

    微信关注公众号:  程序员Android,领福利

  • 相关阅读:
    利用KINECT+OPENCV检测手势的演示程序
    关于PPC软件的开发库
    FlashGet的IE加载项与IE8不兼容
    ubuntu9.04 安装字体 后记
    【pys60笔记】中文
    【pys60学习笔记】S60 模拟器使用。
    ubuntu9.04 安装字体
    IDE硬盘安装Windows 7 7106(光驱与硬盘共用一个IDE)
    易歌——web在线听歌桌面程序。带全局键控制。
    MapX直连Oracle——MapX5配合Oracle时,对中文表名支持不好
  • 原文地址:https://www.cnblogs.com/wangjie1990/p/11326941.html
Copyright © 2011-2022 走看看