From ab33e4935e08c62e09224eda1f4b4d5da80d8ef6 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 8 Jun 2015 18:04:42 +0200 Subject: [PATCH] restore perf output in command line; always remove it from output in tests --- .../kotlin/cli/jvm/K2JVMCompiler.java | 27 +++++++++---------- .../compiler/KotlinToJVMBytecodeCompiler.java | 4 +-- .../cli/jvm/config/JVMConfigurationKeys.java | 3 --- .../org/jetbrains/kotlin/cli/CliBaseTest.java | 2 +- .../integration/AbstractAntTaskTest.java | 3 +-- .../KotlinIntegrationTestBase.java | 2 ++ 6 files changed, 19 insertions(+), 22 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.java b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.java index 4fab113b481..7c3c9e578b7 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.java @@ -214,13 +214,15 @@ public class K2JVMCompiler extends CLICompiler { KotlinToJVMBytecodeCompiler.compileBunchOfSources(environment, jar, outputDir, arguments.includeRuntime); } - PerformanceCounter.Companion.report(new Function1() { - @Override - public Unit invoke(String s) { - reportPerf(environment.getConfiguration(), s); - return Unit.INSTANCE$; - } - }); + if (arguments.reportPerf) { + PerformanceCounter.Companion.report(new Function1() { + @Override + public Unit invoke(String s) { + reportPerf(environment.getConfiguration(), s); + return Unit.INSTANCE$; + } + }); + } return OK; } catch (CompilationException e) { @@ -237,16 +239,14 @@ public class K2JVMCompiler extends CLICompiler { rootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES); long initNanos = System.nanoTime() - initStartNanos; - reportPerf(configuration, "Compiler initialized in " + TimeUnit.NANOSECONDS.toMillis(initNanos) + " ms"); + reportPerf(configuration, "INIT: Compiler initialized in " + TimeUnit.NANOSECONDS.toMillis(initNanos) + " ms"); return result; } public static void reportPerf(CompilerConfiguration configuration, String message) { - if (configuration.get(JVMConfigurationKeys.PERFORMANCE_OUTPUT_ENABLED, false)) { - MessageCollector collector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY); - assert collector != null; - collector.report(CompilerMessageSeverity.INFO, "PERF: " + message, CompilerMessageLocation.NO_LOCATION); - } + MessageCollector collector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY); + assert collector != null; + collector.report(CompilerMessageSeverity.INFO, "PERF: " + message, CompilerMessageLocation.NO_LOCATION); } private static void putAdvancedOptions(@NotNull CompilerConfiguration configuration, @NotNull K2JVMCompilerArguments arguments) { @@ -254,7 +254,6 @@ public class K2JVMCompiler extends CLICompiler { configuration.put(JVMConfigurationKeys.DISABLE_PARAM_ASSERTIONS, arguments.noParamAssertions); configuration.put(JVMConfigurationKeys.DISABLE_INLINE, arguments.noInline); configuration.put(JVMConfigurationKeys.DISABLE_OPTIMIZATION, arguments.noOptimize); - configuration.put(JVMConfigurationKeys.PERFORMANCE_OUTPUT_ENABLED, arguments.reportPerf); } /** diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java index 60ad459d4e4..5a94d39cd00 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java @@ -320,7 +320,7 @@ public class KotlinToJVMBytecodeCompiler { } ); long analysisNanos = PerformanceCounter.Companion.currentThreadCpuTime() - analysisStart; - String message = "Analyzed " + environment.getSourceFiles().size() + " files (" + + String message = "ANALYZE: " + environment.getSourceFiles().size() + " files (" + environment.getSourceLinesOfCode() + " lines) in " + TimeUnit.NANOSECONDS.toMillis(analysisNanos) + " ms"; K2JVMCompiler.reportPerf(environment.getConfiguration(), message); @@ -381,7 +381,7 @@ public class KotlinToJVMBytecodeCompiler { KotlinCodegenFacade.compileCorrectFiles(generationState, CompilationErrorHandler.THROW_EXCEPTION); long generationNanos = PerformanceCounter.Companion.currentThreadCpuTime() - generationStart; - String message = "Generated " + sourceFiles.size() + " files (" + + String message = "GENERATE: " + sourceFiles.size() + " files (" + environment.countLinesOfCode(sourceFiles) + " lines) in " + TimeUnit.NANOSECONDS.toMillis(generationNanos) + " ms"; K2JVMCompiler.reportPerf(environment.getConfiguration(), message); diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JVMConfigurationKeys.java b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JVMConfigurationKeys.java index b278815a4c0..22e59803368 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JVMConfigurationKeys.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JVMConfigurationKeys.java @@ -50,7 +50,4 @@ public class JVMConfigurationKeys { public static final CompilerConfigurationKey> MODULE_IDS = CompilerConfigurationKey.create("module id strings"); - - public static final CompilerConfigurationKey PERFORMANCE_OUTPUT_ENABLED = - CompilerConfigurationKey.create("performance output enabled"); } diff --git a/compiler/tests/org/jetbrains/kotlin/cli/CliBaseTest.java b/compiler/tests/org/jetbrains/kotlin/cli/CliBaseTest.java index d5a207cf28d..d9ef6fd253f 100644 --- a/compiler/tests/org/jetbrains/kotlin/cli/CliBaseTest.java +++ b/compiler/tests/org/jetbrains/kotlin/cli/CliBaseTest.java @@ -81,7 +81,7 @@ public class CliBaseTest { String[] lines = StringUtil.splitByLinesKeepSeparators(output); StringBuilder result = new StringBuilder(); for (String line : lines) { - if (!line.contains("INFO: PERF:")) { + if (!line.contains("PERF:")) { result.append(line); } } diff --git a/compiler/tests/org/jetbrains/kotlin/integration/AbstractAntTaskTest.java b/compiler/tests/org/jetbrains/kotlin/integration/AbstractAntTaskTest.java index 79e625216e2..6fb682f81e8 100644 --- a/compiler/tests/org/jetbrains/kotlin/integration/AbstractAntTaskTest.java +++ b/compiler/tests/org/jetbrains/kotlin/integration/AbstractAntTaskTest.java @@ -17,7 +17,6 @@ package org.jetbrains.kotlin.integration; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.cli.CliBaseTest; import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime; import java.io.File; @@ -42,7 +41,7 @@ public abstract class AbstractAntTaskTest extends KotlinIntegrationTestBase { @Override @NotNull protected String normalizeOutput(@NotNull File testDataDir, @NotNull String content) { - return CliBaseTest.removePerfOutput(super.normalizeOutput(testDataDir, content)) + return super.normalizeOutput(testDataDir, content) .replaceAll("Total time: .+\n", "Total time: [time]\n"); } diff --git a/compiler/tests/org/jetbrains/kotlin/integration/KotlinIntegrationTestBase.java b/compiler/tests/org/jetbrains/kotlin/integration/KotlinIntegrationTestBase.java index 7862876e3ab..816190f33e8 100644 --- a/compiler/tests/org/jetbrains/kotlin/integration/KotlinIntegrationTestBase.java +++ b/compiler/tests/org/jetbrains/kotlin/integration/KotlinIntegrationTestBase.java @@ -30,6 +30,7 @@ import kotlin.text.Regex; import org.intellij.lang.annotations.Language; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.cli.CliBaseTest; import org.jetbrains.kotlin.cli.common.KotlinVersion; import org.jetbrains.kotlin.test.JetTestUtils; import org.jetbrains.kotlin.test.TestCaseWithTmpdir; @@ -83,6 +84,7 @@ public abstract class KotlinIntegrationTestBase extends TestCaseWithTmpdir { content = normalizePath(content, getKotlinProjectHome(), "[KotlinProjectHome]"); content = content.replaceAll(KotlinVersion.VERSION, "[KotlinVersion]"); content = StringUtil.convertLineSeparators(content); + content = CliBaseTest.removePerfOutput(content); return content; }