性能优化02.1:FPS监测
监控 FPS
一般来说,我们约定
60FPS
即为流畅,那么反过来,如果App在运行期间出现了掉帧,即可认为出现了卡顿。监控FPS方案一般是基于
CADisplayLink
实现的。CADisplayLink
是一个和屏幕刷新率保持一致的定时器,一旦CADisplayLink
以特定的模式注册到runloop
后,没当屏幕需要刷新时,runloop
就会调用CADisplayLink
绑定的target
上的selector
。通过向
runloop
中添加CADisplayLink
,根据回调来计算出当前画面的帧数
。FPS
的好处
就是直观,根据FPS
是否下降说明页面某处是否有性能问题。FPS
的坏处
就是只知道页面的某处,不能准确定位到具体的堆栈
。
具体实现
- 创建一个
ZJFPSMonitor
工具类,实现如下代码:
.h 文件下:
1 | #import <Foundation/Foundation.h> |
.m 文件下:
1 | #import "ZJFPSMonitor.h" |
- VC 中调用
1 | #import "ViewController.h" |
查看打印结果:
1 | 2023-03-23 06:58:00.945820+0800 FPS[27330:1519462] 60 |
- Post title:性能优化02.1:FPS监测
- Post author:张建
- Create time:2023-03-23 06:53:11
- Post link:https://redefine.ohevan.com/2023/03/23/OC性能优化/性能优化02.1:FPS监测/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.