report meaningful init times for subsequent runs when -Xrepeat flag is used

This commit is contained in:
Dmitry Jemerov
2015-06-22 19:06:31 +02:00
parent 669cd9e514
commit ebcd7de26b
2 changed files with 9 additions and 1 deletions
@@ -26,6 +26,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments; import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments;
import org.jetbrains.kotlin.cli.common.messages.*; import org.jetbrains.kotlin.cli.common.messages.*;
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
import org.jetbrains.kotlin.cli.jvm.compiler.CompileEnvironmentException; import org.jetbrains.kotlin.cli.jvm.compiler.CompileEnvironmentException;
import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.config.Services; import org.jetbrains.kotlin.config.Services;
@@ -156,6 +157,9 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
} }
for (int i = 0; i < repeatCount; i++) { for (int i = 0; i < repeatCount; i++) {
if (i > 0) {
K2JVMCompiler.Companion.resetInitStartTime();
}
Disposable rootDisposable = Disposer.newDisposable(); Disposable rootDisposable = Disposer.newDisposable();
try { try {
MessageSeverityCollector severityCollector = new MessageSeverityCollector(groupingCollector); MessageSeverityCollector severityCollector = new MessageSeverityCollector(groupingCollector);
@@ -51,7 +51,6 @@ import kotlin.platform.platformStatic
SuppressWarnings("UseOfSystemOutOrSystemErr") SuppressWarnings("UseOfSystemOutOrSystemErr")
public class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() { public class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
private val initStartNanos = System.nanoTime()
override fun doExecute(arguments: K2JVMCompilerArguments, services: Services, messageCollector: MessageCollector, rootDisposable: Disposable): ExitCode { override fun doExecute(arguments: K2JVMCompilerArguments, services: Services, messageCollector: MessageCollector, rootDisposable: Disposable): ExitCode {
val messageSeverityCollector = MessageSeverityCollector(messageCollector) val messageSeverityCollector = MessageSeverityCollector(messageCollector)
@@ -221,6 +220,11 @@ public class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
} }
companion object { companion object {
private var initStartNanos = System.nanoTime()
public fun resetInitStartTime() {
initStartNanos = System.nanoTime()
}
platformStatic public fun main(args: Array<String>) { platformStatic public fun main(args: Array<String>) {
CLICompiler.doMain(K2JVMCompiler(), args) CLICompiler.doMain(K2JVMCompiler(), args)