FIR: Add init time measurement to full pipeline

This commit is contained in:
Simon Ogorodnik
2021-03-16 17:49:09 +03:00
committed by Denis.Zharkov
parent 991e5210ba
commit 0aca68e7c7
2 changed files with 8 additions and 3 deletions
@@ -13,7 +13,7 @@ class JitCompilationMeasurement(private val milliseconds: Long) : PerformanceMea
override fun render(): String = "JIT time is $milliseconds ms"
}
class CompilerInitializationMeasurement(private val milliseconds: Long) : PerformanceMeasurement {
class CompilerInitializationMeasurement(val milliseconds: Long) : PerformanceMeasurement {
override fun render(): String = "INIT: Compiler initialized in $milliseconds ms"
}
@@ -28,6 +28,7 @@ class FullPipelineModularizedTest : AbstractModularizedTest() {
private data class CumulativeTime(
val gcInfo: Map<String, GCInfo>,
val init: Long,
val analysis: Long,
val translation: Long,
val lowering: Long,
@@ -35,13 +36,14 @@ class FullPipelineModularizedTest : AbstractModularizedTest() {
val files: Int,
val lines: Int
) {
constructor() : this(emptyMap(), 0, 0, 0, 0, 0, 0)
constructor() : this(emptyMap(), 0, 0, 0, 0, 0, 0, 0)
operator fun plus(other: CumulativeTime): CumulativeTime {
return CumulativeTime(
(gcInfo.values + other.gcInfo.values).groupingBy { it.name }.reduce { key, accumulator, element ->
GCInfo(key, accumulator.gcTime + element.gcTime, accumulator.collections + element.collections)
},
init + other.init,
analysis + other.analysis,
translation + other.translation,
lowering + other.lowering,
@@ -51,7 +53,7 @@ class FullPipelineModularizedTest : AbstractModularizedTest() {
)
}
fun totalTime() = analysis + translation + lowering + generation
fun totalTime() = init + analysis + translation + lowering + generation
}
private lateinit var totalPassResult: CumulativeTime
@@ -126,6 +128,7 @@ class FullPipelineModularizedTest : AbstractModularizedTest() {
linePerSecondCell(lines, timeMs, timeUnit = MS)
}
}
phase("Init", total.init, total.files, total.lines)
phase("Analysis", total.analysis, total.files, total.lines)
phase("Translation", total.translation, total.files, total.lines)
phase("Lowering", total.lowering, total.files, total.lines)
@@ -262,10 +265,12 @@ class FullPipelineModularizedTest : AbstractModularizedTest() {
.associate { it.garbageCollectionKind to GCInfo(it.garbageCollectionKind, it.milliseconds, it.count) }
val analysisMeasurement = measurements.filterIsInstance<CodeAnalysisMeasurement>().firstOrNull()
val initMeasurement = measurements.filterIsInstance<CompilerInitializationMeasurement>().firstOrNull()
val irMeasurements = measurements.filterIsInstance<IRMeasurement>()
return CumulativeTime(
gcInfo,
initMeasurement?.milliseconds ?: 0,
analysisMeasurement?.milliseconds ?: 0,
irMeasurements.firstOrNull { it.kind == IRMeasurement.Kind.TRANSLATION }?.milliseconds ?: 0,
irMeasurements.firstOrNull { it.kind == IRMeasurement.Kind.LOWERING }?.milliseconds ?: 0,