summaryrefslogtreecommitdiff
path: root/logcat
diff options
context:
space:
mode:
authorAlon Albert <aalbert@google.com>2022-07-13 08:50:29 -0700
committerTreeHugger Robot <treehugger-gerrit@google.com>2022-07-13 17:26:31 +0000
commit8c68a3a7de7a4f3d53b0dd5c42e0c0a3a5ab66d5 (patch)
tree9b92759dcfaa4dd301cb48c73932bf7857dff32e /logcat
parent5cf756dee87da520d6a1dc24c88d12d18735a9b0 (diff)
downloadidea-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.kt17
-rw-r--r--logcat/testSrc/com/android/tools/idea/logcat/messages/MessageProcessorTest.kt3
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,