CADisplayLink小知识点获得FPS

###CADisplayLink是一个能让我们以和屏幕刷新率同步的频率将特定的内容画到屏幕上的定时器类. iPhone设备的屏幕刷新是60Hz,即一秒60次。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//CADisplayLink
CADisplayLink * timer = [CADisplayLink displayLinkWithTarget:self selector:@selector(tick:)];

[_link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];

- (void)tick:(CADisplayLink *)link {
if (_lastTime == 0) {//上一次屏幕刷新的时间
_lastTime = link.timestamp;//屏幕刷新的时间戳
return;
}

_count++;//刷新次数
NSTimeInterval delta = link.timestamp - _lastTime;//获得两次刷新的时间间隔
if (delta < 1) return;//间隔1秒
_lastTime = link.timestamp;
float fps = _count / delta;//fps = 次数/时间间隔
_count = 0;//置零 重新计算
}