Android Runtime Stats

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
posted @ 2018-03-28 19:25  周柯文  阅读(920)  评论(0编辑  收藏  举报