diff options
author | Alon Albert <aalbert@google.com> | 2022-07-13 08:50:29 -0700 |
---|---|---|
committer | TreeHugger Robot <treehugger-gerrit@google.com> | 2022-07-13 17:26:31 +0000 |
commit | 8c68a3a7de7a4f3d53b0dd5c42e0c0a3a5ab66d5 (patch) | |
tree | 9b92759dcfaa4dd301cb48c73932bf7857dff32e /logcat | |
parent | 5cf756dee87da520d6a1dc24c88d12d18735a9b0 (diff) | |
download | idea-8c68a3a7de7a4f3d53b0dd5c42e0c0a3a5ab66d5.tar.gz |
Add a Studio Flag For Max Message Batch
Change the current max from 5000 to 1000.
Bug: na
Test: na
Change-Id: I0d4e316a2710057e05536bbcd0d19a7294bed2ad
Diffstat (limited to 'logcat')
-rw-r--r-- | logcat/src/com/android/tools/idea/logcat/messages/MessageProcessor.kt | 17 | ||||
-rw-r--r-- | logcat/testSrc/com/android/tools/idea/logcat/messages/MessageProcessorTest.kt | 3 |
2 files changed, 13 insertions, 7 deletions
diff --git a/logcat/src/com/android/tools/idea/logcat/messages/MessageProcessor.kt b/logcat/src/com/android/tools/idea/logcat/messages/MessageProcessor.kt index 0c0edb25600..f1835995efe 100644 --- a/logcat/src/com/android/tools/idea/logcat/messages/MessageProcessor.kt +++ b/logcat/src/com/android/tools/idea/logcat/messages/MessageProcessor.kt @@ -17,6 +17,7 @@ package com.android.tools.idea.logcat.messages import com.android.tools.idea.concurrency.AndroidCoroutineScope import com.android.tools.idea.concurrency.AndroidDispatchers.workerThread +import com.android.tools.idea.flags.StudioFlags import com.android.tools.idea.logcat.LogcatPresenter import com.android.tools.idea.logcat.filters.LogcatFilter import com.android.tools.idea.logcat.filters.LogcatMasterFilter @@ -29,10 +30,10 @@ import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.launch import org.jetbrains.annotations.TestOnly import java.time.Clock +import kotlin.system.measureTimeMillis const val CHANNEL_CAPACITY = 10 const val MAX_TIME_PER_BATCH_MS = 100 -const val MAX_MESSAGES_PER_BATCH = 5000 /** * Prints formatted [LogcatMessage]s to a [Document] with coloring provided by a [LogcatColors]. @@ -56,7 +57,7 @@ internal class MessageProcessor @TestOnly constructor( logcatFilter, Clock.systemDefaultZone(), MAX_TIME_PER_BATCH_MS, - MAX_MESSAGES_PER_BATCH, + StudioFlags.LOGCAT_MAX_MESSAGES_PER_BATCH.get(), autoStart = true) private val messageChannel = Channel<List<LogcatMessage>>(CHANNEL_CAPACITY) @@ -75,7 +76,7 @@ internal class MessageProcessor @TestOnly constructor( } // TODO(b/200212377): @ExperimentalCoroutinesApi ReceiveChannel#isEmpty is required. See bug for details. - @Suppress("EXPERIMENTAL_API_USAGE") + @Suppress("OPT_IN_USAGE") @TestOnly internal fun isChannelEmpty() = messageChannel.isEmpty @@ -104,13 +105,17 @@ internal class MessageProcessor @TestOnly constructor( // TODO(b/200212377): @ExperimentalCoroutinesApi ReceiveChannel#isEmpty is required. See bug for details. val now = clock.millis() - @Suppress("EXPERIMENTAL_API_USAGE") + @Suppress("OPT_IN_USAGE") if (messageChannel.isEmpty || now - lastFlushTime > maxTimePerBatchMs || numMessages > maxMessagesPerBatch) { - logcatPresenter.appendMessages(textAccumulator) + val timeInAppendMessages = measureTimeMillis { logcatPresenter.appendMessages(textAccumulator) } LOGGER.debug { val timeSinceStart = now - startTime val timeSinceLastFlush = now - lastFlushTime - "timeSinceStart: $timeSinceStart timeSinceLastFlush (ms): $timeSinceLastFlush numMessages: $numMessages totalMessages=$totalMessages" + "timeSinceStart: $timeSinceStart " + + "timeSinceLastFlush (ms): $timeSinceLastFlush " + + "numMessages: $numMessages " + + "totalMessages=$totalMessages " + + "timeInAppendMessages=$timeInAppendMessages" } textAccumulator = TextAccumulator() lastFlushTime = now diff --git a/logcat/testSrc/com/android/tools/idea/logcat/messages/MessageProcessorTest.kt b/logcat/testSrc/com/android/tools/idea/logcat/messages/MessageProcessorTest.kt index c048a4c8003..46318399b10 100644 --- a/logcat/testSrc/com/android/tools/idea/logcat/messages/MessageProcessorTest.kt +++ b/logcat/testSrc/com/android/tools/idea/logcat/messages/MessageProcessorTest.kt @@ -17,6 +17,7 @@ package com.android.tools.idea.logcat.messages import com.android.testutils.MockitoKt.mock import com.android.testutils.MockitoKt.whenever +import com.android.tools.idea.flags.StudioFlags import com.android.tools.idea.logcat.FakeLogcatPresenter import com.android.tools.idea.logcat.LogcatPresenter import com.android.tools.idea.logcat.filters.LogcatFilterField.LINE @@ -185,7 +186,7 @@ class MessageProcessorTest { formatMessagesInto: (TextAccumulator, List<LogcatMessage>) -> Unit = messageFormatter, clock: Clock = Clock.systemDefaultZone(), maxTimePerBatchMs: Int = MAX_TIME_PER_BATCH_MS, - maxMessagesPerBatch: Int = MAX_MESSAGES_PER_BATCH, + maxMessagesPerBatch: Int = StudioFlags.LOGCAT_MAX_MESSAGES_PER_BATCH.get(), autoStart: Boolean = true, ) = MessageProcessor( logcatPresenter, |