From 4f9e77e7cd1cb576eedddd33f1b4cada1a02e15f Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 6 Mar 2026 16:12:33 -0500 Subject: [PATCH] Add additional decryption benchmark trace. --- .../org/thoughtcrime/securesms/messages/MessageDecryptor.kt | 3 +++ .../java/org/thoughtcrime/benchmark/BenchmarkMetrics.kt | 5 +++++ .../benchmark/GroupMessageProcessingBenchmarks.kt | 6 +++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt index f379339281..4484cc2373 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt @@ -73,6 +73,7 @@ import org.whispersystems.signalservice.internal.push.Content import org.whispersystems.signalservice.internal.push.Envelope import org.whispersystems.signalservice.internal.push.PniSignatureMessage import org.whispersystems.signalservice.internal.util.Util +import org.thoughtcrime.securesms.util.SignalTrace import java.util.Optional import kotlin.time.Duration.Companion.nanoseconds import kotlin.time.DurationUnit @@ -154,7 +155,9 @@ object MessageDecryptor { return try { val startTimeNanos = System.nanoTime() + SignalTrace.beginSection("MessageDecryptor#cipherDecrypt") val cipherResult: SignalServiceCipherResult? = cipher.decrypt(envelope, serverDeliveredTimestamp) + SignalTrace.endSection() val endTimeNanos = System.nanoTime() val envelope = if (cipherResult?.metadata?.sourceServiceId != null) { diff --git a/benchmark/src/main/java/org/thoughtcrime/benchmark/BenchmarkMetrics.kt b/benchmark/src/main/java/org/thoughtcrime/benchmark/BenchmarkMetrics.kt index 4574996e08..70ce13f38d 100644 --- a/benchmark/src/main/java/org/thoughtcrime/benchmark/BenchmarkMetrics.kt +++ b/benchmark/src/main/java/org/thoughtcrime/benchmark/BenchmarkMetrics.kt @@ -33,6 +33,11 @@ object BenchmarkMetrics { TraceSectionMetric("DataMessageProcessor#postProcess", Mode.Average) ) + val messageDecryptor: List + get() = listOf( + TraceSectionMetric("MessageDecryptor#cipherDecrypt", Mode.Average), + ) + val messageContentProcessor: List get() = listOf( TraceSectionMetric("MessageContentProcessor#handleMessage", Mode.Average) diff --git a/benchmark/src/main/java/org/thoughtcrime/benchmark/GroupMessageProcessingBenchmarks.kt b/benchmark/src/main/java/org/thoughtcrime/benchmark/GroupMessageProcessingBenchmarks.kt index 07d7350e8b..0ce900a5ab 100644 --- a/benchmark/src/main/java/org/thoughtcrime/benchmark/GroupMessageProcessingBenchmarks.kt +++ b/benchmark/src/main/java/org/thoughtcrime/benchmark/GroupMessageProcessingBenchmarks.kt @@ -41,7 +41,7 @@ class GroupMessageProcessingBenchmarks { private fun runGroupMessageReceive(withConversationOpen: Boolean) { benchmarkRule.measureRepeated( packageName = "org.thoughtcrime.securesms.benchmark", - metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.groupDataMessageProcessor, + metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageDecryptor + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.groupDataMessageProcessor, iterations = 3, compilationMode = CompilationMode.Partial(), setupBlock = { @@ -68,7 +68,7 @@ class GroupMessageProcessingBenchmarks { private fun runGroupDeliveryReceipt(withConversationOpen: Boolean) { benchmarkRule.measureRepeated( packageName = "org.thoughtcrime.securesms.benchmark", - metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.deliveryReceipt, + metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageDecryptor + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.deliveryReceipt, iterations = 3, compilationMode = CompilationMode.Partial(), setupBlock = { @@ -94,7 +94,7 @@ class GroupMessageProcessingBenchmarks { private fun runGroupReadReceipt(withConversationOpen: Boolean) { benchmarkRule.measureRepeated( packageName = "org.thoughtcrime.securesms.benchmark", - metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.readReceipt, + metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageDecryptor + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.readReceipt, iterations = 3, compilationMode = CompilationMode.Partial(), setupBlock = {