屏幕帧数检测

屏幕帧数检测

首先说下 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,非常感谢。

你可能感兴趣的:(屏幕帧数检测)