美文网首页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