美文网首页iOS Developer
Objective-C/iOS 获取页面的帧率

Objective-C/iOS 获取页面的帧率

作者: WonderChang | 来源:发表于2017-03-17 09:57 被阅读521次

    获取页面的帧率是通过这个CADisplayLink刷帧方法的调用次数计算的。

    //以下代码加在合适的地方
    _link = [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;
        _lastTime = link.timestamp;
        float fps = _count / delta;
        NSLog(@"页面帧率:%f",fps);
        _count = 0;
    }
    
    

    用此方法统计帧率的有一些性能损耗,所以需要控制在某些时刻采集一定的样本就及时暂停。暂停将之从RunLoop中移除即可:

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

    相关文章

      网友评论

        本文标题:Objective-C/iOS 获取页面的帧率

        本文链接:https://www.haomeiwen.com/subject/sazsnttx.html