Run wall profile ^KT-80117
diff --git a/libraries/tools/gradle/regression-benchmark-templates/src/main/kotlin/org/jetbrains/kotlin/gradle/benchmark/BenchmarkTemplate.kt b/libraries/tools/gradle/regression-benchmark-templates/src/main/kotlin/org/jetbrains/kotlin/gradle/benchmark/BenchmarkTemplate.kt index f3585bc..83e4df2 100644 --- a/libraries/tools/gradle/regression-benchmark-templates/src/main/kotlin/org/jetbrains/kotlin/gradle/benchmark/BenchmarkTemplate.kt +++ b/libraries/tools/gradle/regression-benchmark-templates/src/main/kotlin/org/jetbrains/kotlin/gradle/benchmark/BenchmarkTemplate.kt
@@ -257,6 +257,7 @@ arrayOf( "--async-profiler-home", asyncProfilerDir.path, "--async-profiler-event", asyncProfilerConfig.cpuProfiler, + "--async-profiler-interval", "5000000", "--profile", "async-profiler", ) } ?: emptyArray() @@ -426,7 +427,16 @@ * 4.1 no longer has the script, so. symlink manually */ val asyncProfilerExecutable = asyncProfilerDir.resolve("profiler.sh") - Files.createSymbolicLink(asyncProfilerExecutable.toPath(), Paths.get(asyncProfilerBin)) + asyncProfilerExecutable.writeText( + """ + #!/bin/bash + + script_root=$(dirname "$0") + "${'$'}{script_root}"/bin/asprof -I '*ExecuteBuild.doBuild*' "$@" + """.trimIndent() + ) + asyncProfilerExecutable.setExecutable(true) + //Files.createSymbolicLink(asyncProfilerExecutable.toPath(), Paths.get(asyncProfilerBin)) println("Finished downloading async-profiler") } @@ -631,13 +641,13 @@ javaOsName == "Mac OS X" -> BenchmarkTemplate.AsyncProfilerConfiguration( "https://github.com/async-profiler/async-profiler/releases/download/v${ASYNC_PROFILER_VERSION}/async-profiler-${ASYNC_PROFILER_VERSION}-macos.zip", Decompression.ZIP, - cpuProfiler = "cpu", + cpuProfiler = "wall", ) javaOsName == "Linux" -> BenchmarkTemplate.AsyncProfilerConfiguration( "https://github.com/async-profiler/async-profiler/releases/download/v${ASYNC_PROFILER_VERSION}/async-profiler-${ASYNC_PROFILER_VERSION}-linux-x64.tar.gz", Decompression.TAR_GZ, // On CI this will implicitly run in "ctimer" mode because we run containerized builds which don't have access to perf_events - cpuProfiler = "cpu", + cpuProfiler = "wall", ) javaOsName.startsWith("Windows") -> null else -> error("Unknown OS ${javaOsName}")
diff --git a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/kvision.benchmark.kts b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/kvision.benchmark.kts index 8cba4f65..50cbf5e 100644 --- a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/kvision.benchmark.kts +++ b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/kvision.benchmark.kts
@@ -37,36 +37,36 @@ // runCleanupTasks("clean") // } - scenario { - title = "Build Js IR with ABI change in ObservableList" - iterations = defaultIterations - - useGradleArgs( - "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=false", - ) - - runTasks("jsJar") - applyAbiChangeTo("kvision-modules/kvision-state/src/jsMain/kotlin/io/kvision/state/ObservableList.kt") - } - - scenario { - title = "Build Js IR with non-ABI change in ObservableList" - iterations = defaultIterations - - useGradleArgs( - "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=false", - ) - - runTasks("jsJar") - applyNonAbiChangeTo("kvision-modules/kvision-state/src/jsMain/kotlin/io/kvision/state/ObservableList.kt") - } +// scenario { +// title = "Build Js IR with ABI change in ObservableList" +// iterations = defaultIterations +// +// useGradleArgs( +// "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=false", +// ) +// +// runTasks("jsJar") +// applyAbiChangeTo("kvision-modules/kvision-state/src/jsMain/kotlin/io/kvision/state/ObservableList.kt") +// } +// +// scenario { +// title = "Build Js IR with non-ABI change in ObservableList" +// iterations = defaultIterations +// +// useGradleArgs( +// "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=false", +// ) +// +// runTasks("jsJar") +// applyNonAbiChangeTo("kvision-modules/kvision-state/src/jsMain/kotlin/io/kvision/state/ObservableList.kt") +// } scenario { title = "Dry run configuration time" useGradleArgs( "-m", - "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=false", + "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=true", ) iterations = defaultIterations @@ -74,26 +74,26 @@ runTasks("jsJar") } - scenario { - title = "No-op configuration time" - iterations = defaultIterations - - useGradleArgs( - "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=false", - ) - - runTasks("help") - } - - scenario { - title = "UP-TO-DATE configuration time" - iterations = defaultIterations - - useGradleArgs( - "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=false", - ) - - runTasks("jsJar") - } +// scenario { +// title = "No-op configuration time" +// iterations = defaultIterations +// +// useGradleArgs( +// "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=false", +// ) +// +// runTasks("help") +// } +// +// scenario { +// title = "UP-TO-DATE configuration time" +// iterations = defaultIterations +// +// useGradleArgs( +// "-Pkotlin.kmp.unresolvedDependenciesDiagnostic=false", +// ) +// +// runTasks("jsJar") +// } } ) \ No newline at end of file