All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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