最近测试AndroidCPU,需要用到iTest,多次测试数据感觉出入很大,所以查阅资料所得iTest的CPU计算方法如下
一.采样法
采样法与上文中的linux的算法基本相同,不同点在于,使用500毫秒采样的值来代表监控间隔的值,例子:
监控间隔为5秒,则每隔5秒,系统花费500毫秒计算cpu占用率,并且将这个值作为监控间隔内的cpu占用率。
缺点 :只有当监控间隔比较小,或者采样个数比较多时,才有意义。
优点 :如果发现采样的数据有问题,可以重试多次!这种方法非常适合手机这种不稳定的平台;
二.平均值法
平均值法用的就是linux的算法,Emmagee等同类工具也是如此。例子:
监控间隔为5秒,则5秒前记录一次cpu的原始数据,5秒后记录一次cpu的原始数据, 将被测应用在这段时间内的占用cpu时间除以总的cpu占用时间即可。(即5秒内的平均值)
缺点 :
1)平均值会比实际值“好看”,不能突出问题。(参考天朝的人均收入)
2) 如果本次间隔内的数据有问题,则只能打印错误码,无法改正/重试。
优点 :
数据有可比性,和其它工具的算法一样,所以数据可以直接对比。