iOS开发 - 在状态栏显示FPS,CPU和内存信息

原理

FPS的计算

CoreAnimation有一个很好用的类CADisplayLink,这个类会在每一帧绘制之前调用,并且可以获取时间戳。于是,我们只要统计出,在1s内的帧数即可。

- (void)envokeDisplayLink:(CADisplayLink *)displayLink{
    if (_lastTimestamp == -1) {
        _lastTimestamp = displayLink.timestamp;
        return;
    }
    _countPerFrame ++;
    NSTimeInterval interval = displayLink.timestamp - _lastTimestamp;
    if (interval < 1) {
        return;
    }
    _lastTimestamp = displayLink.timestamp;
    CGFloat fps = _countPerFrame / interval;
    //...
}

内存和CPU信息的获取

CPU和内存的获取采用了mach头文件中的方法,调用了底层API,采用C方式来获取。

posted @ 2017-06-26 13:28  jgCho  阅读(2469)  评论(0编辑  收藏  举报