
net.peanuuutz.fork.ui.inspection.DebtInspector.kt Maven / Gradle / Ivy
package net.peanuuutz.fork.ui.inspection
import net.peanuuutz.fork.util.common.fastJoinToString
import net.peanuuutz.fork.util.common.nanoNow
import net.peanuuutz.fork.util.fork.ForkLogger
class DebtInspector : Inspector {
private val phases: ArrayDeque = ArrayDeque(16)
private val timeNanos: ArrayDeque = ArrayDeque(16)
override fun push(phase: String) {
phases.add(phase)
timeNanos.add(nanoNow())
}
override fun pop() {
if (debugInspector) {
val currentPhase = phases.fastJoinToString(separator = ".")
val debt = nanoNow() - timeNanos.last()
ForkLogger.info("[$currentPhase] Debt: ${debt / 1_000_000.0}ms") // TODO debug
}
phases.removeLast()
timeNanos.removeLast()
}
override fun reset() {
phases.clear()
timeNanos.clear()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy