mirror of
https://github.com/ouchadam/small-talk.git
synced 2025-02-22 06:57:44 +01:00
adding performance logger with chaining
This commit is contained in:
parent
7cdd8e2b96
commit
9c6ba3d352
@ -21,7 +21,30 @@ fun MatrixLogger.matrixLog(message: Any) {
|
||||
matrixLog(tag = MatrixLogTag.MATRIX, message = message)
|
||||
}
|
||||
|
||||
suspend fun <T> MatrixLogger.logP(area: String, block: suspend () -> T): T {
|
||||
fun MatrixLogger.logP(area: String): PerfTracker {
|
||||
val start = System.currentTimeMillis()
|
||||
var lastCheckpoint = start
|
||||
return object : PerfTracker {
|
||||
override fun checkpoint(label: String) {
|
||||
val now = System.currentTimeMillis()
|
||||
val timeTaken = (now - lastCheckpoint)
|
||||
lastCheckpoint = now
|
||||
matrixLog(MatrixLogTag.PERF, "$area - $label: took $timeTaken ms")
|
||||
}
|
||||
|
||||
override fun stop() {
|
||||
val timeTaken = System.currentTimeMillis() - start
|
||||
matrixLog(MatrixLogTag.PERF, "$area: took $timeTaken ms")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface PerfTracker {
|
||||
fun checkpoint(label: String)
|
||||
fun stop()
|
||||
}
|
||||
|
||||
inline fun <T> MatrixLogger.logP(area: String, block: () -> T): T {
|
||||
val start = System.currentTimeMillis()
|
||||
return block().also {
|
||||
val timeTaken = System.currentTimeMillis() - start
|
||||
|
Loading…
x
Reference in New Issue
Block a user