Report compiler performance data to ES
This commit is contained in:
+3
@@ -10,6 +10,7 @@ import com.intellij.openapi.util.Disposer
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInClassDescriptorFactory
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.CommonCompilerPerformanceManager
|
||||
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoots
|
||||
import org.jetbrains.kotlin.cli.common.messages.*
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||
@@ -41,6 +42,7 @@ class BuiltInsSerializer(dependOnOldBuiltIns: Boolean) : MetadataSerializer(Buil
|
||||
) {
|
||||
val rootDisposable = Disposer.newDisposable()
|
||||
val messageCollector = createMessageCollector()
|
||||
val performanceManager = object : CommonCompilerPerformanceManager(presentableName = "test") {}
|
||||
try {
|
||||
val configuration = CompilerConfiguration().apply {
|
||||
put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector)
|
||||
@@ -50,6 +52,7 @@ class BuiltInsSerializer(dependOnOldBuiltIns: Boolean) : MetadataSerializer(Buil
|
||||
|
||||
put(CLIConfigurationKeys.METADATA_DESTINATION_DIRECTORY, destDir)
|
||||
put(CommonConfigurationKeys.MODULE_NAME, "module for built-ins serialization")
|
||||
put(CLIConfigurationKeys.PERF_MANAGER, performanceManager)
|
||||
}
|
||||
|
||||
val environment = KotlinCoreEnvironment.createForProduction(rootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
|
||||
|
||||
@@ -329,7 +329,12 @@ abstract class CompileServiceImplBase(
|
||||
val exitCode = compiler.exec(messageCollector, Services.EMPTY, k2PlatformArgs)
|
||||
|
||||
val perfString = compiler.defaultPerformanceManager.renderCompilerPerformance()
|
||||
(compilationResults as CompilationResults).add(CompilationResultCategory.BUILD_REPORT_LINES.code, arrayListOf(perfString))
|
||||
compilationResults?.also {
|
||||
(it as CompilationResults).add(
|
||||
CompilationResultCategory.BUILD_REPORT_LINES.code,
|
||||
arrayListOf(perfString)
|
||||
)
|
||||
}
|
||||
|
||||
exitCode
|
||||
}
|
||||
|
||||
+12
-3
@@ -21,12 +21,11 @@ import org.jetbrains.kotlin.build.GeneratedFile
|
||||
import org.jetbrains.kotlin.build.report.BuildReporter
|
||||
import org.jetbrains.kotlin.build.report.metrics.BuildTime
|
||||
import org.jetbrains.kotlin.build.report.metrics.BuildAttribute
|
||||
import org.jetbrains.kotlin.build.report.metrics.BuildPerformanceMetric
|
||||
import org.jetbrains.kotlin.build.report.metrics.measure
|
||||
import org.jetbrains.kotlin.cli.common.CompilerSystemProperties
|
||||
import org.jetbrains.kotlin.cli.common.ExitCode
|
||||
import org.jetbrains.kotlin.cli.common.*
|
||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.kotlin.cli.common.toBooleanLenient
|
||||
import org.jetbrains.kotlin.compilerRunner.MessageCollectorToOutputItemsCollectorAdapter
|
||||
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl
|
||||
import org.jetbrains.kotlin.compilerRunner.SimpleOutputItem
|
||||
@@ -497,5 +496,15 @@ abstract class IncrementalCompilerRunner<
|
||||
override fun checkCanceled() {
|
||||
}
|
||||
}
|
||||
|
||||
protected fun reportPerformanceData(defaultPerformanceManager: CommonCompilerPerformanceManager) {
|
||||
defaultPerformanceManager.getMeasurementResults().forEach {
|
||||
when (it) {
|
||||
is CompilerInitializationMeasurement -> reporter.addTimeMetric(BuildTime.COMPILER_INITIALIZATION, it.milliseconds)
|
||||
is CodeAnalysisMeasurement -> reporter.addTimeMetric(BuildTime.CODE_ANALYSIS, it.milliseconds)
|
||||
is CodeGenerationMeasurement -> reporter.addTimeMetric(BuildTime.CODE_GENERATION, it.milliseconds)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -20,8 +20,9 @@ import org.jetbrains.kotlin.build.GeneratedFile
|
||||
import org.jetbrains.kotlin.build.report.BuildReporter
|
||||
import org.jetbrains.kotlin.build.report.ICReporter
|
||||
import org.jetbrains.kotlin.build.report.metrics.BuildAttribute
|
||||
import org.jetbrains.kotlin.build.report.metrics.BuildPerformanceMetric
|
||||
import org.jetbrains.kotlin.build.report.metrics.DoNothingBuildMetricsReporter
|
||||
import org.jetbrains.kotlin.cli.common.ExitCode
|
||||
import org.jetbrains.kotlin.cli.common.*
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.isIrBackendEnabled
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
@@ -192,7 +193,8 @@ class IncrementalJsCompilerRunner(
|
||||
compiler.exec(messageCollector, services, args)
|
||||
} finally {
|
||||
args.freeArgs = freeArgsBackup
|
||||
reporter.report { compiler.defaultPerformanceManager.renderCompilerPerformance() }
|
||||
// reporter.report { compiler.defaultPerformanceManager.renderCompilerPerformance() }
|
||||
reportPerformanceData(compiler.defaultPerformanceManager)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -433,7 +433,8 @@ class IncrementalJvmCompilerRunner(
|
||||
args.allowNoSourceFiles = true
|
||||
val exitCode = compiler.exec(messageCollector, services, args)
|
||||
args.freeArgs = freeArgsBackup
|
||||
reporter.report { compiler.defaultPerformanceManager.renderCompilerPerformance() }
|
||||
// reporter.report { compiler.defaultPerformanceManager.renderCompilerPerformance() }
|
||||
reportPerformanceData(compiler.defaultPerformanceManager)
|
||||
return exitCode
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user