Android 在 API 23 增加了运行时 GC 状态的获取接口,用法如下:

Map<String, String> map = Debug.getRuntimeStats();
String stat = Debug.getRuntimeStat("art.gc.gc-count");

截止目前(API 28),能获取到的值如下表:

运行时状态名称  含义  例子 
art.gc.gc-count 当前进程的 GC 次数   164
art.gc.gc-time 当前进程的 GC 总耗时,单位是毫秒 62364 
art.gc.bytes-allocated 当前进程 art 虚拟机已分配的内存大小,单位字节  1463948408
art.gc.bytes-freed 当前进程 GC 成功回收的字节数   1313493084
art.gc.blocking-gc-count 当前进程的阻塞 GC 次数  2
art.gc.blocking-gc-time 当前进程的阻塞 GC 总耗时,单位是毫秒  804
art.gc.gc-count-rate-histogram  系统每10秒会计算一次 GC 次数,这个字段代表该进程运行到现在的每10秒 GC 次数的直方图。比如此例子中,意味着进程运行到现在有34503个的10秒内没有 GC 的情况,而有8个10秒内 GC 了5次的情况。  0:34503,1:45350,2:11281,3:8088,4:43,5:8
art.gc.blocking-gc-count-rate-histogram  同上,不过是阻塞的 GC   0:99269,1:1,2:1

Android Runtime Stats的更多相关文章

  1. Android Runtime

    [Android Runtime] Every Android application runs in its own process, with its own instance of the Da ...

  2. 【Record】ART:Android RunTime

    资料来自url=9xdxrhR45Uj3p450JQvTUO-dmzcWswNmABVgYAaFS0AXYDi8Q2JOzvu7y33GIOAI_8Lz7JmLrl0x6DoRW8e5oa" ...

  3. Android Runtime.getRuntime().exec

    try { // Executes the command. Process process = Runtime.getRuntime().exec(cmd); // NOTE: You can wr ...

  4. Android studio 报错Error:Internal error: (java.lang.ClassNotFoundException) com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index

    Android studio运行make build报错 解决方法 在studio的File-->Settings-->Build, Execution, Deployment---> ...

  5. Android runtime Exception 整理

    一般面试中java Exception(runtimeException )是必会被问到的问题 常见的异常列出四五种,是基本要求.更多的....需要注意积累了   常见的几种如下:   NullPoi ...

  6. Android——Runtime类中的freeMemory,totalMemory,maxMemory等几个方法

    maxMemory() 这个方法返回的是java虚拟机(这个进程)能构从操作系统那里挖到的最大的内存,以字节为单位,如果在运行java程序的时 候,没有添加-Xmx参数,那么就是64兆,也就是说max ...

  7. art 模式 android runtime

    空间换时间的概念. art:程序在安装时需要预编译读取,将代码转换为机器码 好处:程序运行时,无需时时转换,运行速度快 : 缺点:安装时间稍长,由于转换机器码,所以占用略高的存储空间.

  8. Android: 通过Runtime.getRuntime().exec调用底层Linux下的程序或脚本

    Android Runtime使得直接调用底层Linux下的可执行程序或脚本成为可能 比如Linux下写个测试工具,直接编译后apk中通过Runtime来调用 或者写个脚本,apk中直接调用,省去中间 ...

  9. Android内存管理(5)*官方教程:Logcat内存日志各字段含义,查看当前内存快照,跟踪记录内存分配,用adb查看内存情况时各行列的含义,捕获内存快照的3种方法,如何让程序暴漏内存泄漏的方法

    Investigating Your RAM Usage In this document Interpreting Log Messages                 内存分析日志中各消息的含 ...

随机推荐

  1. Java中Double类型的精确计算

    import java.math.BigDecimal; public class DoubleUtil { private static final int DEF_DIV_SCALE = 5; / ...

  2. IO流(4)—字符流

    1.IO体系: 抽象基类 --节点流(文件流) InputStream -- FileInputStream OutputStream --FileOutputSteam Reader --FileR ...

  3. Gradle初识

    一.安装配置 gradle官方网站https://gradle.org/,下载下来是一个压缩包,解压到合适的目录即可,然后配置环境变量(GRADLE_HOME,Path),略去. 二.IDEA配置 N ...

  4. WPF 模板绑定父级控件内容

    WPF 模板绑定父级控件内容 <Style TargetType="Button" x:Key="btn"> <Setter Property ...

  5. grid - 隐式地命名网格区域名称

    通常可以将网格线命名成任何你想命名的名称,如果网格线名称添加-start和-end的后缀,其实也隐式的创建一个网格区域,可以用来设置网格项目的位置. 在这个示例中,行和列都具有inner-start和 ...

  6. kalman滤波

    kalman滤波原理(通俗易懂) 1. 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”.跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人 ...

  7. 整体C#与Sql培训内容及结构

    图如果看不清可以右键存图片到本地

  8. RabbitMQ 特性

    1RabbitMQ 特点 与 SpringAMQP 完美整合.API 丰富. 集群模式丰富,表达式配置,HA 模式,镜像队列模型. 保证数据不丢失的前提做到高可靠性.可用性.

  9. [docker]通过阿里云源安装docker && flannel不通问题解决(try this guy out)

    docker清理容器 # 容器停止后就自动删除: docker run --rm centos /bin/echo "One"; # 杀死所有正在运行的容器: docker kil ...

  10. 给页面点击链接加了转圈圈和解决遇到的bug

    今天遇到一个问题,之前给整个网站上的链接加了loading,今天遇到在ios的chrome和safari下点击进入新页面然后点击浏览器的返回按钮,loading还在,并且一直存在,最后网上搜到了解决方 ...