From 2be68065af88e77439fe50196918d56229d5f0e3 Mon Sep 17 00:00:00 2001 From: Andrey Uskov Date: Thu, 15 Dec 2022 22:43:44 +0300 Subject: [PATCH] Report lines number and LpS in build reports #KT-55540 Fixed --- .../report/metrics/BuildPerformanceMetric.kt | 4 ++++ .../incremental/IncrementalCompilerRunner.kt | 20 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/build-common/src/org/jetbrains/kotlin/build/report/metrics/BuildPerformanceMetric.kt b/build-common/src/org/jetbrains/kotlin/build/report/metrics/BuildPerformanceMetric.kt index d9f10713880..5ac12884195 100644 --- a/build-common/src/org/jetbrains/kotlin/build/report/metrics/BuildPerformanceMetric.kt +++ b/build-common/src/org/jetbrains/kotlin/build/report/metrics/BuildPerformanceMetric.kt @@ -16,6 +16,10 @@ enum class BuildPerformanceMetric(val parent: BuildPerformanceMetric? = null, va BUNDLE_SIZE(readableString = "Total size of the final bundle", type = ValueType.BYTES), COMPILE_ITERATION(parent = null, "Total compiler iteration", type = ValueType.NUMBER), + ANALYZED_LINES_NUMBER(parent = COMPILE_ITERATION, "Number of lines analyzed", type = ValueType.NUMBER), + CODE_GENERATED_LINES_NUMBER(parent = COMPILE_ITERATION, "Number of lines for code generation", type = ValueType.NUMBER), + ANALYSIS_LPS(parent = COMPILE_ITERATION, "Analysis lines per second", type = ValueType.NUMBER), + CODE_GENERATION_LPS(parent = COMPILE_ITERATION, "Code generation lines per second", type = ValueType.NUMBER), // Metrics for the `kotlin.incremental.useClasspathSnapshot` feature CLASSPATH_ENTRY_SNAPSHOT_TRANSFORM_EXECUTION_COUNT(parent = null, "Number of times 'ClasspathEntrySnapshotTransform' ran", type = ValueType.NUMBER), diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt index ad888f78763..f8967e7da21 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt @@ -585,8 +585,24 @@ abstract class IncrementalCompilerRunner< defaultPerformanceManager.getMeasurementResults().forEach { when (it) { is CompilerInitializationMeasurement -> reporter.addTimeMetricMs(BuildTime.COMPILER_INITIALIZATION, it.milliseconds) - is CodeAnalysisMeasurement -> reporter.addTimeMetricMs(BuildTime.CODE_ANALYSIS, it.milliseconds) - is CodeGenerationMeasurement -> reporter.addTimeMetricMs(BuildTime.CODE_GENERATION, it.milliseconds) + is CodeAnalysisMeasurement -> { + reporter.addTimeMetricMs(BuildTime.CODE_ANALYSIS, it.milliseconds) + it.lines?.apply { + reporter.addMetric(BuildPerformanceMetric.ANALYZED_LINES_NUMBER, this.toLong()) + if (it.milliseconds > 0) { + reporter.addMetric(BuildPerformanceMetric.ANALYSIS_LPS, this * 1000 / it.milliseconds) + } + } + } + is CodeGenerationMeasurement -> { + reporter.addTimeMetricMs(BuildTime.CODE_GENERATION, it.milliseconds) + it.lines?.apply { + reporter.addMetric(BuildPerformanceMetric.CODE_GENERATED_LINES_NUMBER, this.toLong()) + if (it.milliseconds > 0) { + reporter.addMetric(BuildPerformanceMetric.CODE_GENERATION_LPS, this * 1000 / it.milliseconds) + } + } + } } } }