Matrix 是一款微信研发并日常使用的 APM(Application Performance Manage)
Matrix 是一款微信研发并日常使用的 APM(Application Performance Manage),当前主要运行在 Android 平台上。 Matrix 的目标是建立统一的应用性能接入框架,通过各种性能监控方案,对性能监控项的异常数据进行采集和分析,输出相应的问题分析、定位与优化建议,从而帮助开发者开发出更高质量的应用。
V0.6.0
txfelixzhou released this
Matrix - iOS
- 增加耗电监控功能
- 同步最新的 KSCrash
Matrix - Android
- 修复dev分支版本不同步问题
- 调整Trace模块的部分实现
Assets
2
V0.5.2
Matrix-Android
- zip冲突修复 (#224)
- 重命名GZIP文件,和cocoapods中其他GZIP pod冲突了
- 修改master的podspec,文件路径变化了
- fix trimstack stackover bug
- fix trimstack crash and methodbeat
Matrix -iOS
- update podspec
- Update README.md
- rename(PodSpec): matrix-apple -> matrix-wechat
- update(sample): matrix-apple -> matrix-wechat
- change matrix-apple to matrix-iOS
Assets
2
v0.5.1
txfelixzhou released this
Matrix - Android
Matrix-TraceCanary
增加卡顿信息收集
- 发生 ANR 时,获取应用当前的内存信息,包括:Native Heap、Java Heap、VmSize;
- 发生 ANR 时,通过 Thread.getStackTrace 的方式,额外获取主线程堆栈及State;
- 统计系统帧事件处理时,Choreographer 中三种类型队列 CALLBACK_INPUT、CALLBACK_ANIMATION、CALLBACK_TRAVERSAL 各自处理的耗时;
- 卡顿发生时,统计当前主线程的 CPU 利用率;
提升卡顿定位精确度
- 监控主线程 Looper#handleMessage 的方式来捕捉卡顿的耗时堆栈,替换原先通过 Choreographer#doFrame 的回调方式监控两帧之间的堆栈,使堆栈更完整更清晰。
- 废除 TracePlugin 依赖前后台事件来触发是否开启监控,避免切换前后台的临界范围监控不到。
加快编译插桩速度
- 拆分任务,支持多线程并发读取及操作字节码文件;
规避功耗问题
- 计算帧率,采用一种应用本身有帧事件处理才通知的方式,替换原先通过Choreographer#postFrameCallback 主动触发帧事件通知的方式,避免在应用本无帧事件处理时,仍然需要不断处理本模块 post 的帧事件回调;
- 时间线程更新策略调整,不依赖前后台来判断是否运作,通过 Looper#handleMessage 的开始和结束点来决定是否执行,避免主线程在无任务处理时,时间线程仍旧不停工作,导致功耗问题。
解耦重构
- 废弃之前 MethodBeat 中 lockBuffer 及 resetBuffer 的方式,采用 IndexRecord 链表记录各个模块 mark 的 index 方式代替,解耦各个模块对 MethodBeat 中 buffer 的依赖。
- 将 ANR 监控从 EvilMethodTracer 模块抽离为独立的模块 AnrTracer
- 简单化堆栈裁剪及 stackKey 计算策略
bugfix
- 修复一些已知问题,如堆栈耗时对不上,编译时crash,后台耗电,兼容9.0启动监控等。
关于Sample
- 增加帧率监控浮窗显示 FrameDecorator
Assets
3
v0.4.10
txfelixzhou released this
Assets
2
热门度与活跃度
10.0
3.2
Watchers:186 |
Star:6450 |
Fork:822 |
创建时间: 2018-12-11 15:08:02 |
最后Commits: 10天前 |
许可协议:View license |
58d9c6b
Verified
Matrix - iOS
Matrix - Android