Skip to content

Instantly share code, notes, and snippets.

@AlexFlyce
Last active May 22, 2018 09:24
Show Gist options
  • Save AlexFlyce/4a9b4b0070773a74568075e1c7685586 to your computer and use it in GitHub Desktop.
Save AlexFlyce/4a9b4b0070773a74568075e1c7685586 to your computer and use it in GitHub Desktop.
ART001-DroppingFramesHelper.swift
class DroppingFramesHelper: NSObject {
private var firstTime: TimeInterval = 0.0
private var lastTime: TimeInterval = 0.0
func activate() {
let link = CADisplayLink(target: self, selector: #selector(update(link:)))
link.add(to: .main, forMode: .commonModes)
}
@objc private func update(link: CADisplayLink) {
if lastTime == 0 {
firstTime = link.timestamp
lastTime = link.timestamp
}
let currentTime = link.timestamp
let elapsedTime = floor((currentTime - lastTime) * 10_000)/10
let totalElapsedTime = currentTime - firstTime
if elapsedTime > 16.7 {
print("[DFH] Frame was dropped with elpased time of \(elapsedTime)ms at \(totalElapsedTime)")
}
lastTime = link.timestamp
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment