diff --git a/platform/lang-impl/src/com/intellij/util/indexing/UnindexedFilesUpdater.java b/platform/lang-impl/src/com/intellij/util/indexing/UnindexedFilesUpdater.java index e6957ad4ee8d..c1a187cfb896 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/UnindexedFilesUpdater.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/UnindexedFilesUpdater.java @@ -38,6 +38,7 @@ import com.intellij.util.progress.ConcurrentTasksProgressManager; import com.intellij.util.progress.SubTaskProgressIndicator; import org.jetbrains.annotations.NotNull; +import java.time.Instant; import java.util.*; import java.util.concurrent.ExecutorService; @@ -75,7 +76,7 @@ public final class UnindexedFilesUpdater extends DumbModeTask { private void updateUnindexedFiles(ProgressIndicator indicator) { if (!IndexInfrastructure.hasIndices()) return; ProjectIndexingHistory projectIndexingHistory = new ProjectIndexingHistory(myProject.getName()); - projectIndexingHistory.getTimes().setStartIndexing(nowMillis()); + projectIndexingHistory.getTimes().setIndexingStart(Instant.now()); if (myStartSuspended) { ProgressSuspender suspender = ProgressSuspender.getSuspender(indicator); @@ -90,13 +91,13 @@ public final class UnindexedFilesUpdater extends DumbModeTask { indicator.setIndeterminate(true); indicator.setText(IndexingBundle.message("progress.indexing.scanning")); - projectIndexingHistory.getTimes().setStartPushProperties(nowMillis()); + projectIndexingHistory.getTimes().setPushPropertiesStart(Instant.now()); PerformanceWatcher.Snapshot snapshot = PerformanceWatcher.takeSnapshot(); myPusher.pushAllPropertiesNow(); boolean trackResponsiveness = !ApplicationManager.getApplication().isUnitTestMode(); - projectIndexingHistory.getTimes().setEndPushProperties(nowMillis()); + projectIndexingHistory.getTimes().setPushPropertiesEnd(Instant.now()); if (trackResponsiveness) snapshot.logResponsivenessSinceCreation("Pushing properties"); @@ -104,19 +105,19 @@ public final class UnindexedFilesUpdater extends DumbModeTask { snapshot = PerformanceWatcher.takeSnapshot(); - projectIndexingHistory.getTimes().setStartIndexExtensions(nowMillis()); + projectIndexingHistory.getTimes().setIndexExtensionsStart(Instant.now()); FileBasedIndexInfrastructureExtension.EP_NAME.extensions().forEach(ex -> ex.processIndexingProject(myProject, indicator)); - projectIndexingHistory.getTimes().setEndIndexExtensions(nowMillis()); + projectIndexingHistory.getTimes().setIndexExtensionsEnd(Instant.now()); - projectIndexingHistory.getTimes().setStartScanFiles(nowMillis()); + projectIndexingHistory.getTimes().setScanFilesStart(Instant.now()); List orderedProviders = myIndex.getOrderedIndexableFilesProviders(myProject); Map> providerToFiles = collectIndexableFilesConcurrently(myProject, indicator, orderedProviders); - projectIndexingHistory.getTimes().setEndScanFiles(nowMillis()); + projectIndexingHistory.getTimes().setScanFilesEnd(Instant.now()); if (trackResponsiveness) snapshot.logResponsivenessSinceCreation("Indexable file iteration"); @@ -168,7 +169,7 @@ public final class UnindexedFilesUpdater extends DumbModeTask { } } - projectIndexingHistory.getTimes().setEndIndexing(nowMillis()); + projectIndexingHistory.getTimes().setIndexingEnd(Instant.now()); if (!ApplicationManager.getApplication().isUnitTestMode()) { NonUrgentExecutor.getInstance().execute(() -> { @@ -181,10 +182,6 @@ public final class UnindexedFilesUpdater extends DumbModeTask { myIndex.dumpIndexStatistics(); } - private static long nowMillis() { - return System.currentTimeMillis(); - } - @NotNull private Map> collectIndexableFilesConcurrently( @NotNull Project project, diff --git a/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/IndexDiagnostic.kt b/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/IndexDiagnostic.kt index ce9fe553de2f..dc296d979e39 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/IndexDiagnostic.kt +++ b/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/IndexDiagnostic.kt @@ -3,6 +3,7 @@ package com.intellij.util.indexing.diagnostic import com.intellij.util.indexing.diagnostic.dto.JsonFileProviderIndexStatistics import com.intellij.util.indexing.diagnostic.dto.toJson +import java.time.Instant typealias TimeMillis = Long typealias TimeNano = Long @@ -74,16 +75,13 @@ data class ProjectIndexingHistory(val projectName: String) { ) data class IndexingTimes( - var startIndexing: TimeMillis = 0, - var endIndexing: TimeMillis = 0, - - var startPushProperties: TimeMillis = 0, - var endPushProperties: TimeMillis = 0, - - var startIndexExtensions: TimeMillis = 0, - var endIndexExtensions: TimeMillis = 0, - - var startScanFiles: TimeMillis = 0, - var endScanFiles: TimeMillis = 0 + var indexingStart: Instant? = null, + var indexingEnd: Instant? = null, + var pushPropertiesStart: Instant? = null, + var pushPropertiesEnd: Instant? = null, + var indexExtensionsStart: Instant? = null, + var indexExtensionsEnd: Instant? = null, + var scanFilesStart: Instant? = null, + var scanFilesEnd: Instant? = null ) } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/dto/JsonConverter.kt b/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/dto/JsonConverter.kt index 0a57e9bde277..694ce23f08c3 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/dto/JsonConverter.kt +++ b/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/dto/JsonConverter.kt @@ -3,6 +3,8 @@ package com.intellij.util.indexing.diagnostic.dto import com.intellij.util.indexing.diagnostic.* import com.intellij.util.text.DateFormatUtil +import java.time.Duration +import java.time.Instant fun TimeNano.toMillis(): TimeMillis = this / 1_000_000 @@ -63,23 +65,23 @@ private fun FileProviderIndexStatistics.aggregateStatsPerIndexer(): List, val totalStatsPerIndexer: List, val fileProviderStatistics: List diff --git a/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/dto/JsonProjectIndexingHistoryTimes.kt b/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/dto/JsonProjectIndexingHistoryTimes.kt index a2215776afbd..52533e04d1c8 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/dto/JsonProjectIndexingHistoryTimes.kt +++ b/platform/lang-impl/src/com/intellij/util/indexing/diagnostic/dto/JsonProjectIndexingHistoryTimes.kt @@ -3,19 +3,17 @@ package com.intellij.util.indexing.diagnostic.dto @Suppress("unused", "used for JSON") data class JsonProjectIndexingHistoryTimes( - val startIndexing: PresentableTime, - val endIndexing: PresentableTime, val indexingTime: JsonTime, - - val startPushProperties: PresentableTime, - val endPushProperties: PresentableTime, + val scanFilesTime: JsonTime, val pushPropertiesTime: JsonTime, - - val startIndexExtensions: PresentableTime, - val endIndexExtensions: PresentableTime, val indexExtensionsTime: JsonTime, - val startScanFiles: PresentableTime, - val endScanFiles: PresentableTime, - val scanFilesTime: JsonTime + val indexingStart: PresentableTime, + val indexingEnd: PresentableTime, + val pushPropertiesStart: PresentableTime, + val pushPropertiesEnd: PresentableTime, + val indexExtensionsStart: PresentableTime, + val indexExtensionsEnd: PresentableTime, + val scanFilesStart: PresentableTime, + val scanFilesEnd: PresentableTime ) \ No newline at end of file