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 5dcb296b5da..1a669cf65e4 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.java @@ -200,15 +200,13 @@ public class K2JVMCompiler extends CLICompiler { KotlinToJVMBytecodeCompiler.compileBunchOfSources(environment, jar, outputDir, arguments.includeRuntime); } - if (arguments.reportPerf) { - PerformanceCounter.Companion.report(new Function1() { - @Override - public Unit invoke(String s) { - reportPerf(environment.getConfiguration(), s); - return Unit.INSTANCE$; - } - }); - } + PerformanceCounter.Companion.report(new Function1() { + @Override + public Unit invoke(String s) { + reportPerf(environment.getConfiguration(), s); + return Unit.INSTANCE$; + } + }); return OK; } catch (CompilationException e) { @@ -230,9 +228,11 @@ public class K2JVMCompiler extends CLICompiler { } public static void reportPerf(CompilerConfiguration configuration, String message) { - MessageCollector collector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY); - assert collector != null; - collector.report(CompilerMessageSeverity.INFO, "PERF: " + message, CompilerMessageLocation.NO_LOCATION); + 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); + } } private static void putAdvancedOptions(@NotNull CompilerConfiguration configuration, @NotNull K2JVMCompilerArguments arguments) { @@ -240,6 +240,7 @@ 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/config/JVMConfigurationKeys.java b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JVMConfigurationKeys.java index 22e59803368..b278815a4c0 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,4 +50,7 @@ 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/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out index 8b119e15aa9..841cb7dc84a 100644 --- a/compiler/testData/cli/jvm/extraHelp.out +++ b/compiler/testData/cli/jvm/extraHelp.out @@ -3,6 +3,7 @@ where advanced options include: -Xno-call-assertions Don't generate not-null assertion after each invocation of method returning not-null -Xno-param-assertions Don't generate not-null assertions on parameters of methods accessible from Java -Xno-optimize Disable optimizations + -Xreport-perf Report detailed performance statistics -Xno-inline Disable method inlining -Xplugin Load plugins from the given classpath