in skiko/src/commonMain/kotlin/org/jetbrains/skiko/FPSCounter.kt [23:45]
fun tick() {
val time = currentNanoTime()
val timestamp = time.nanosToMillis().toLong()
val frameTime = time - lastTime
lastTime = time
times.add(frameTime)
if (logOnTick && showLongFrames && frameTime > getLongFrameMillis().millisToNanos()) {
println("$timestamp Long frame ${frameTime.nanosToMillis()} ms")
}
if ((time - lastLogTime) > periodSeconds.secondsToNanos() && times.isNotEmpty()) {
average = (nanosPerSecond / times.average()).roundToInt()
min = (nanosPerSecond / times.maxOrNull()!!).roundToInt()
max = (nanosPerSecond / times.minOrNull()!!).roundToInt()
times.clear()
lastLogTime = time
if (logOnTick) {
println("[$timestamp] FPS $average ($min-$max)")
}
}
}