Split Gradle and JPS metrics
#KT-58026 In progress
This commit is contained in:
committed by
Space Team
parent
524df83265
commit
ed2dd4b2ae
@@ -5,23 +5,22 @@
|
||||
|
||||
package org.jetbrains.kotlin.build.report
|
||||
|
||||
import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter
|
||||
import org.jetbrains.kotlin.build.report.metrics.DoNothingBuildMetricsReporter
|
||||
import org.jetbrains.kotlin.build.report.metrics.RemoteBuildMetricsReporter
|
||||
import org.jetbrains.kotlin.build.report.metrics.*
|
||||
|
||||
open class BuildReporter(
|
||||
open class BuildReporter<B : BuildTime, P : BuildPerformanceMetric>(
|
||||
protected open val icReporter: ICReporter,
|
||||
protected open val buildMetricsReporter: BuildMetricsReporter
|
||||
) : ICReporter by icReporter, BuildMetricsReporter by buildMetricsReporter
|
||||
protected open val buildMetricsReporter: BuildMetricsReporter<B, P>,
|
||||
) : ICReporter by icReporter, BuildMetricsReporter<B, P> by buildMetricsReporter
|
||||
|
||||
class RemoteBuildReporter(
|
||||
class RemoteBuildReporter<B : BuildTime, P : BuildPerformanceMetric>(
|
||||
override val icReporter: RemoteICReporter,
|
||||
override val buildMetricsReporter: RemoteBuildMetricsReporter
|
||||
) : BuildReporter(icReporter, buildMetricsReporter), RemoteReporter {
|
||||
override val buildMetricsReporter: RemoteBuildMetricsReporter<B, P>,
|
||||
) : BuildReporter<B, P>(icReporter, buildMetricsReporter), RemoteReporter {
|
||||
override fun flush() {
|
||||
icReporter.flush()
|
||||
buildMetricsReporter.flush()
|
||||
}
|
||||
}
|
||||
|
||||
object DoNothingBuildReporter : BuildReporter(DoNothingICReporter, DoNothingBuildMetricsReporter)
|
||||
object DoNothingBuildReporter :
|
||||
BuildReporter<GradleBuildTime, GradleBuildPerformanceMetric>(DoNothingICReporter, DoNothingBuildMetricsReporter)
|
||||
|
||||
+1
-2
@@ -7,5 +7,4 @@ package org.jetbrains.kotlin.build.report.metrics
|
||||
|
||||
import org.jetbrains.kotlin.build.report.RemoteReporter
|
||||
|
||||
interface RemoteBuildMetricsReporter : BuildMetricsReporter,
|
||||
RemoteReporter
|
||||
interface RemoteBuildMetricsReporter<B : BuildTime, P : BuildPerformanceMetric> : BuildMetricsReporter<B, P>, RemoteReporter
|
||||
@@ -7,7 +7,8 @@ package org.jetbrains.kotlin.incremental
|
||||
|
||||
import org.jetbrains.kotlin.build.report.BuildReporter
|
||||
import org.jetbrains.kotlin.build.report.debug
|
||||
import org.jetbrains.kotlin.build.report.metrics.BuildTime
|
||||
import org.jetbrains.kotlin.build.report.metrics.GradleBuildPerformanceMetric
|
||||
import org.jetbrains.kotlin.build.report.metrics.GradleBuildTime
|
||||
import org.jetbrains.kotlin.build.report.metrics.measure
|
||||
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollector
|
||||
import org.jetbrains.kotlin.incremental.storage.InMemoryStorageWrapper
|
||||
@@ -163,7 +164,7 @@ class NonRecoverableCompilationTransaction : CompilationTransaction, BaseCompila
|
||||
* In the case of an unsuccessful compilation [stashDir] is also removed, but the backed-up files restored to their origin location.
|
||||
*/
|
||||
class RecoverableCompilationTransaction(
|
||||
private val reporter: BuildReporter,
|
||||
private val reporter: BuildReporter<GradleBuildTime, GradleBuildPerformanceMetric>,
|
||||
private val stashDir: Path,
|
||||
) : CompilationTransaction, BaseCompilationTransaction() {
|
||||
private val fileRelocationRegistry = hashMapOf<Path, Path?>()
|
||||
@@ -175,7 +176,7 @@ class RecoverableCompilationTransaction(
|
||||
*/
|
||||
override fun registerAddedOrChangedFile(outputFile: Path) {
|
||||
if (isFileRelocationIsAlreadyRegisteredFor(outputFile)) return
|
||||
reporter.measure(BuildTime.PRECISE_BACKUP_OUTPUT) {
|
||||
reporter.measure(GradleBuildTime.PRECISE_BACKUP_OUTPUT) {
|
||||
if (Files.exists(outputFile)) {
|
||||
stashFile(outputFile)
|
||||
} else {
|
||||
@@ -197,7 +198,7 @@ class RecoverableCompilationTransaction(
|
||||
Files.delete(outputFile)
|
||||
return
|
||||
}
|
||||
reporter.measure(BuildTime.PRECISE_BACKUP_OUTPUT) {
|
||||
reporter.measure(GradleBuildTime.PRECISE_BACKUP_OUTPUT) {
|
||||
stashFile(outputFile)
|
||||
}
|
||||
}
|
||||
@@ -219,7 +220,7 @@ class RecoverableCompilationTransaction(
|
||||
*/
|
||||
private fun revertChanges() {
|
||||
reporter.debug { "Reverting changes" }
|
||||
reporter.measure(BuildTime.RESTORE_OUTPUT_FROM_BACKUP) {
|
||||
reporter.measure(GradleBuildTime.RESTORE_OUTPUT_FROM_BACKUP) {
|
||||
for ((originPath, relocatedPath) in fileRelocationRegistry) {
|
||||
if (relocatedPath == null) {
|
||||
if (Files.exists(originPath)) {
|
||||
@@ -237,7 +238,7 @@ class RecoverableCompilationTransaction(
|
||||
*/
|
||||
private fun cleanupStash() {
|
||||
reporter.debug { "Cleaning up stash" }
|
||||
reporter.measure(BuildTime.CLEAN_BACKUP_STASH) {
|
||||
reporter.measure(GradleBuildTime.CLEAN_BACKUP_STASH) {
|
||||
Files.walk(stashDir).use {
|
||||
it.sorted(Comparator.reverseOrder())
|
||||
.forEach(Files::delete)
|
||||
|
||||
Reference in New Issue
Block a user