美文网首页Android-性能优化
腾讯 Apm 框架 Matrix 源码阅读 - TracePlu

腾讯 Apm 框架 Matrix 源码阅读 - TracePlu

作者: 河里的枇杷树 | 来源:发表于2020-03-31 18:01 被阅读0次

    通用

    tag:类型,Trace_StartUp,Trace_FPS 等
    process:监测进程
    type:类型,用于区分同一个tag不同类型的上报
    key:每个Tracer不同
    time:上报时间
    content:上报的主体内容
    
    machine:BEST 机器分级 BEST, HIGH, MIDDLE, LOW, BAD, UN_KNOW;
    cpu_app:CPU使用率
    mem:总内存大小
    mem_free:可用内存大小
    

    FrameTracer

    scene:当前可见的activity
    dropLevel:记录各个卡段级别出现的次数,卡顿级别可分为DROPPED_FROZEN,DROPPED_HIGH,DROPPED_MIDDLE,DROPPED_NORMAL,DROPPED_BEST;例:
        "DROPPED_MIDDLE":18,表示时间阈值内共有 18此时 DROPPED_MIDDLE的情况
    dropSum:记录各个卡段级别掉帧总数,例:
        "DROPPED_MIDDLE":218, 表示时间阈值内共有 218帧是 位于 DROPPED_MIDDLE
    fps:时间阈值内的平均帧率
    dropTaskFrameSum:不太清楚
    

    StartupTracer

    tag: Trace_EvilMethod or Trace_StartUp
    
    application_create:(Application的启动时间)第一次启动Activity或者Service或者广播的时间(这里没有内容提供者是因为内容提供者是在Application初始化完成之前,加载完毕的) 减去 Application开始启动时间
    application_create_scene:启动场景 Activity(159,100),Service(114),broadcastReceiver()113
    first_activity_create:(首屏启动时间)第一个Activity 可操作的时间(Activity获取焦点) 减去 Application开始启动时间
    startup_duration:启动时间可分为 :
        * (冷启动时间):主Activity可操作的时间(Activity获取焦点) 减去 Application开始启动时间
        * (暖启动时间):最近一个Activity开始启动的时间 减去 这个Activity可操作的时间(Activity获取焦点) 
    is_warm_start_up:是否是暖启动
    
    detail:固定为STARTUP
    cost:总耗时同 startup_duration
    stack:方法栈信息, 每个item之间用“\n”隔开,每个item的含义为,调用深度,methodId,调用次数,耗时
        * 比如:0,118,1,5 -> 调用深度为0,methodId=118,调用次数=1,耗时5ms
    stackKey:主要耗时方法 的methodId
    subType:2:暖启动,1:冷启动
    
    

    EvilMethodTracer

    tag: Trace_EvilMethod
    
    detail:固定为NORMAL
    cost:总耗时
    usage:主线程cpu占用率
    scene:当前可见Activity名称
    stack:方法栈信息, 每个item之间用“\n”隔开,每个item的含义为,调用深度,methodId,调用次数,耗时
        * 比如:0,118,1,5 -> 调用深度为0,methodId=118,调用次数=1,耗时5ms
    stackKey:主要耗时方法 的methodId
    
    

    AnrTracer

    tag: Trace_EvilMethod
    key:token(dispatchStart的时间)
    
    detail:固定为ANR
    cost:总耗时
    usage:主线程cpu占用率
    scene:当前可见Activity名称
    stack:方法栈信息, 每个item之间用“\n”隔开,每个item的含义为,调用深度,methodId,调用次数,耗时
        * 比如:0,118,1,5 -> 调用深度为0,methodId=118,调用次数=1,耗时5ms
    stackKey:主要耗时方法 的methodId
    threadStack:堆栈信息
    processPriority:动态线程优先级
    processNice:(静态线程优先级)
    isProcessForeground:是否是后台线程
    memory:内存情况包含如下三部分
        dalvik_heap:dalvik已使用内存大小(KB)
        native_heap:native已使用内存大小(KB)
        vm_size:虚拟内存总大小
    
    

    系列文章

    参考

    Matrix Android data format

    相关文章

      网友评论

        本文标题:腾讯 Apm 框架 Matrix 源码阅读 - TracePlu

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