最近看到了一份关于 微信自研 APM 利器,Matrix 正式开源了
具体上报方案:
1、FPS,每秒传输帧数 参数 FPS 大概在50到60之间,低于此数值,在连续的一段时间内超过阀值的帧数上报,防止数据量过多。
2、CPU占用率,( > 50% 上报)
1)、在控制器加载成功的时候获取CPU使用率( viewDidAppear )获取一次。
2)、程序运行每隔5s获取一次
3、内存占用,(设置内存使用的阀值,iphoneX大概在100M+)
1)、在控制器加载成功的时候获取内存使用率(viewDidAppear)获取一次。
2)、程序运行每隔5s获取一次
4、卡顿,
1)、创建一个子线程进行循环检测,每次检测时设置标记位为YES,然后派发任务到主线程中将标记位设置为NO,设置超时阀值为0.05。接着子线程沉睡超时阙值时长,判断标志位是否成功设置成NO,如果没有说明主线程发生了卡顿。
5、页面加载时间、(设置加载时间阀值0.3s左右)
1)、从控制器加载成功的过程中(viewDidLoad -> viewDidAppear)获取一次
// 上报数据存储在本地缓存每隔1分钟将数据 (写内存) 整体一次性上报,每条记录以数组的形式存储
// 上报数据结构
"data":{
"eventType":1, // 时