Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wojteklu/Watchdog
Class for logging excessive blocking on the main thread
https://github.com/wojteklu/Watchdog
debugging ios macos mainthread swift
Last synced: about 2 months ago
JSON representation
Class for logging excessive blocking on the main thread
- Host: GitHub
- URL: https://github.com/wojteklu/Watchdog
- Owner: wojteklu
- License: mit
- Created: 2015-09-11T19:30:28.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2019-12-14T14:32:11.000Z (over 4 years ago)
- Last Synced: 2024-03-29T23:42:14.444Z (3 months ago)
- Topics: debugging, ios, macos, mainthread, swift
- Language: Swift
- Homepage:
- Size: 525 KB
- Stars: 1,852
- Watchers: 41
- Forks: 92
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-ios - Watchdog - Class for logging excessive blocking on the main thread. (Logging / Other Hardware)
- awesome-swift - Watchdog - Utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-swift - Watchdog - Utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-swifty - Watchdog - Utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-swift4 - Watchdog - Utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-ios2 - Watchdog - Class for logging excessive blocking on the main thread (Logging / Other free courses)
- awesome-swift - Watchdog - Utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-ios - Watchdog - Class for logging excessive blocking on the main thread (Logging / Other free courses)
- awesome-ios-star - Watchdog - Class for logging excessive blocking on the main thread. (Logging / Other Hardware)
- awesome-swiftxx - Watchdog - Utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-ios - Watchdog - Class for logging excessive blocking on the main thread (Logging / Other free courses)
- fucking-awesome-swift - Watchdog - Utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-swiftqq - Watchdog - Utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-swifte - Watchdog - Utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-swift-cn - Watchdog - A Swift utility for logging excessive blocking on the main thread. (Libs / Logging)
- awesome-xamarin-forms - Watchdog - Class for logging excessive blocking on the main thread :large_orange_diamond: (Logging)
- awesome-ios - Watchdog - Class for logging excessive blocking on the main thread. (Logging / Other Hardware)
- awesome-from-stars - wojteklu/Watchdog
- awesome-stars - wojteklu/Watchdog - Class for logging excessive blocking on the main thread (Swift)
- awesome-ios - Watchdog - Class for logging excessive blocking on the main thread. (Logging / Other Hardware)
- awesome-ios - Watchdog - Class for logging excessive blocking on the main thread :large_orange_diamond: (Logging / Other free courses)
- awesome-iosx - Watchdog - Class for logging excessive blocking on the main thread. (Logging / Other Hardware)
- awesome-ios - Watchdog - Class for logging excessive blocking on the main thread. (Logging / Other Hardware)
- awesome-iosr - Watchdog - Class for logging excessive blocking on the main thread. (Logging / Other Hardware)
- learn.awesome-iOS - Watchdog - Class for logging excessive blocking on the main thread :large_orange_diamond: (Logging)
- learn.awesome.ios - Watchdog - Class for logging excessive blocking on the main thread. (Logging / Other Hardware)
- awesome-ios - Watchdog - Class for logging excessive blocking on the main thread. (Logging / Other Hardware)
- awesome-swift - Watchdog - Class for logging excessive blocking on the main thread ` ๐ 2 years ago ` (Logging [๐](#readme))
README
# Watchdog
[![Language](https://img.shields.io/badge/swift-4.2-orange.svg)](http://swift.org)
[![Build Status](https://img.shields.io/travis/wojteklu/Watchdog/master.svg?style=flat-square)](https://travis-ci.org/wojteklu/Watchdog) [![Platform support](https://img.shields.io/badge/platform-iOS%20%7C%20macOS%20%7C%20tvOS-lightgrey.svg?style=flat-square)](https://github.com/wojteklu/Watchdog/blob/master/LICENSE) [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/Watchdog.svg?style=flat-square)](https://cocoapods.org/pods/Watchdog) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/wojteklu/Watchdog/blob/master/LICENSE)Class for logging excessive blocking on the main thread. It watches the main thread and checks if it doesnโt get blocked for more than defined threshold.
```
๐ฎ Main thread was blocked for 1.25s ๐ฎ
```You can also inspect which part of your code is blocking the main thread.
![]()
## Usage
Simply, just instantiate Watchdog with number of seconds that must pass to consider the main thread blocked. Additionally you can enable `strictMode` that stops the execution whenever the threshold is reached. This way, you can inspect which part of your code is blocking the main thread.
```Swift
let watchdog = Watchdog(threshold: 0.4, strictMode: true)
```Don't forget to retain Watchdog somewhere or it will get released when it goes out of scope.
## Requirements
* iOS 8.0+, tvOS 9.0+ or macOS 10.9+
* Swift 5.0## Installation
### [Carthage]
[Carthage]: https://github.com/Carthage/Carthage
Add the following to your Cartfile:
```
github "wojteklu/Watchdog"
```Then run `carthage update`.
Follow the current instructions in [Carthage's README][carthage-installation]
for up to date installation instructions.[carthage-installation]: https://github.com/Carthage/Carthage#adding-frameworks-to-an-application
### [CocoaPods]
[CocoaPods]: http://cocoapods.org
Add the following to your [Podfile](http://guides.cocoapods.org/using/the-podfile.html):
```ruby
pod 'Watchdog'
```You will also need to make sure you're opting into using frameworks:
```ruby
use_frameworks!
```### Manually
Manually add the file into your Xcode project. Slightly simpler, but updates are also manual.
## Author
Wojtek Lukaszuk [@wojteklu](http://twitter.com/wojteklu)
## License
Watchdog is available under the MIT license. See the LICENSE file for more info.