WatchdogInspector
在您的 iOS 应用程序的停靠栏中显示当前帧率 (fps)
成为好公民!不要阻塞主线程!
WatchdogInspector 会统计您的应用程序的帧率并在停靠栏中显示 fps。彩色停靠栏会告诉您当您的帧率低于 60 fps 时。如果一切正常,您的停靠栏将保持绿色。为了检测不必要的线程阻塞,您可以设置自定义看门狗超时。
功能
- 状态栏显示当前帧率(每2秒测量一次),以fps为单位
- 根据fps将状态栏颜色从绿色(良好的帧率)渐变到红色(不良的帧率)
- 自定义看门狗超时:主线程在指定时间内停滞时抛出异常
安装
CocoaPods
pod "WatchdogInspector"
运行pod install
。您可以在示例项目中查看如何设置和运行WatchdogInspector
。请确保您在**不要**在生产环境中使用WatchdogInspector
。
Carthage
您可以使用Carthage。在Cartfile中指定
github "tapwork/WatchdogInspector"
使用
Objective-C | Swift
开始
在启动后或任何时候
import WatchdogInspector
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
TWWatchdogInspector.start()
return true
}
要停止,只需调用
TWWatchdogInspector.stop()
主线程停滞异常
您可以为停滞异常设置自定义看门狗超时时间(默认:3秒)
TWWatchdogInspector.setStallingThreshhold(10.0)
您还可以禁用主线程异常
TWWatchdogInspector.setEnableMainthreadStallingException(false)
#### 记录为了记录所有测量的帧率,您可以在控制台通过调用记录它们(默认:开启)
TWWatchdogInspector.setUseLogs(true)
工作原理
基本上,有两款计时器在运行以测量帧率。
-
后台线程计时器每2秒触发一次,以计算主线程设置的帧数。理想情况下,结果将在2秒内达到120帧,以获得60fps。后台计时器在每次事件中重置帧计数器。它还会将测量的fps发送到主线程的状态栏。
-
主线程计时器应该每1/60秒(60fps对于流畅动画是理想的)触发一次,以增加帧计数器。如果主线程阻塞并且无法在每1/60秒运行,帧率将下降到60fps。
还有一个运行循环观察器在运行以检测主线程的停滞,有一个定义的超时时间。如果超时已到达,将抛出异常。
相关项目
- HeapInspector 查找您的iOS应用中的内存问题和泄漏