Class for logging excessive blocking on the main thread. It observes the run loop and detect any stalling or blocking that occurs.
๐ฎ Main thread was blocked for 1.25s ๐ฎ
- Swift 2.0
Watchdog is available through CocoaPods. To install
it, simply add the following line to your Podfile
:
pod "Watchdog"
Manually add the file into your Xcode project. Slightly simpler, but updates are also manual.
- Add
github "wojteklukaszuk/Watchdog" ~> 1.0.2
to your Cartfile or Cartfile.private - Run
carthage update
Simply, just instantiate Watchdog with number of seconds that must pass to consider the main thread blocked.
let watchdog = Watchdog(threshold: 0.2)
You can also write a closure to be called whenever the main thread is blocked
let watchdog = Watchdog(threshold: 0.3) { duration in
print("๐ฎ Main thread was blocked for " + String(format:"%.2f", duration) + "s ๐ฎ")
}
Don't forget to retain Watchdog somewhere or it will get released when it goes out of scope.
Wojtek Lukaszuk @wojteklukaszuk
Thanks @jspahrsummers for coming up with the original idea.
Watchdog is available under the MIT license. See the LICENSE file for more info.