- 集成SDK方法
业界主流方法,腾讯GT,滴滴Doraemon,以SDK的方法接入工程中
可监测数据包括:CPU,内存,FPS,流量,卡顿等性能指标
其中具体实现方法大同小异,通过分析Doraemon源码总结
CPU:主要是取当前的所有线程相加,调用内核中APP的thread_info信息,然后累加thread_info中各线程占用率之和
内存:使用phys_footprint获取的内存消耗基本与Xcode自带的统计工具相同
FPS:使用CADisplayLink,该方法可以让你与屏幕刷新率相同的速率来刷新你的当前视图,等同于同步屏幕刷新频率的计时器。使用时,绑定一个累加函数即可。
流量:使用NSURLProtocol方法拦截NSURLConnection、NSUrlSession、UIWebView中所有的网络请求,获取每一个网络请求的request和response对象。缺点是无法拦截tcp请求
- Perfdog(目标)
实时显示对应的性能指标,但是具体取性能数据的方法还未知
猜测,反编译了instrument或者Xcode中的方法,理由:调试APP时也能看到实时的数据,需要后续查阅Xcode的文档,或者试图反编译
- instrument + trace文件分析(初步)
使用instrument的命令行来执行对应的监测数据,根据生成的trace文件对其进行反编译
后续:考虑是否可以和自动化进行统一,分析相关数据
- shell修改性能文件
关于页面加载时间的专项
使用minicap+iOS自动化+图像识别