屏幕帧数检测
2017-05-31 本文已影响11人
bonoCat
屏幕帧数检测
首先说下 CADisplayLink 概念,官方文档中有详细的解析,这边简单的整理下。
CADisplayLink:屏幕刷新时进行触发
利用 CADisplayLink 的特性和屏幕一秒刷新60次的概念,就可以利用1秒内刷新次数判断屏幕帧数
要点一:
/// NSRunLoopCommonModes 会自动同步所有common模式下的数据
[_link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
要点二:
if (_lastTime == 0) {
_lastTime = link.timestamp;
return;
}
_count++;
/// 获取的秒,计算时间差,判断是否是1秒内的数据,通过 _count 来计算,正常情况下,count为60
NSTimeInterval delta = link.timestamp - _lastTime;
if (delta < 1) return;
/// 单位时间内的计数次数,就是fps
float fps = _count / delta;
/// 数据初始化
_count = 0;
_lastTime = link.timestamp;
主要代码逻辑来源YYFPSLabel,非常感谢。