mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-02 00:17:41 +01:00
Improve message processing performance.
This commit is contained in:
committed by
Greyson Parrelli
parent
7eebb38eda
commit
61ba2ac97a
@@ -20,13 +20,19 @@ object BenchmarkMetrics {
|
||||
TraceSectionMetric("IncomingMessageObserver#totalProcessing", Mode.Sum)
|
||||
)
|
||||
|
||||
val dataMessageProcessor: List<TraceSectionMetric>
|
||||
val groupDataMessageProcessor: List<TraceSectionMetric>
|
||||
get() = listOf(
|
||||
TraceSectionMetric("DataMessageProcessor#gv2PreProcessing", Mode.Average),
|
||||
TraceSectionMetric("DataMessageProcessor#messageInsert", Mode.Average),
|
||||
TraceSectionMetric("DataMessageProcessor#postProcess", Mode.Average)
|
||||
)
|
||||
|
||||
val individualDataMessageProcessor: List<TraceSectionMetric>
|
||||
get() = listOf(
|
||||
TraceSectionMetric("DataMessageProcessor#messageInsert", Mode.Average),
|
||||
TraceSectionMetric("DataMessageProcessor#postProcess", Mode.Average)
|
||||
)
|
||||
|
||||
val messageContentProcessor: List<TraceSectionMetric>
|
||||
get() = listOf(
|
||||
TraceSectionMetric("MessageContentProcessor#handleMessage", Mode.Average)
|
||||
|
||||
@@ -34,7 +34,7 @@ class ConversationBenchmarks {
|
||||
TraceSectionMetric("4-ConversationOpen-Data-Posted"),
|
||||
TraceSectionMetric("5-ConversationOpen-Render"),
|
||||
),
|
||||
iterations = 10,
|
||||
iterations = 3,
|
||||
compilationMode = CompilationMode.Partial(),
|
||||
setupBlock = {
|
||||
if (!setup) {
|
||||
|
||||
@@ -41,8 +41,8 @@ class GroupMessageProcessingBenchmarks {
|
||||
private fun runGroupMessageReceive(withConversationOpen: Boolean) {
|
||||
benchmarkRule.measureRepeated(
|
||||
packageName = "org.thoughtcrime.securesms.benchmark",
|
||||
metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.dataMessageProcessor,
|
||||
iterations = 5,
|
||||
metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.groupDataMessageProcessor,
|
||||
iterations = 3,
|
||||
compilationMode = CompilationMode.Partial(),
|
||||
setupBlock = {
|
||||
setupGroup("group-message-send", BenchmarkSetup::setupGroupSend, withConversationOpen)
|
||||
@@ -69,7 +69,7 @@ class GroupMessageProcessingBenchmarks {
|
||||
benchmarkRule.measureRepeated(
|
||||
packageName = "org.thoughtcrime.securesms.benchmark",
|
||||
metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.deliveryReceipt,
|
||||
iterations = 5,
|
||||
iterations = 3,
|
||||
compilationMode = CompilationMode.Partial(),
|
||||
setupBlock = {
|
||||
setupGroup("group-delivery-receipt", BenchmarkSetup::setupGroupDeliveryReceipt, withConversationOpen)
|
||||
@@ -95,7 +95,7 @@ class GroupMessageProcessingBenchmarks {
|
||||
benchmarkRule.measureRepeated(
|
||||
packageName = "org.thoughtcrime.securesms.benchmark",
|
||||
metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.readReceipt,
|
||||
iterations = 5,
|
||||
iterations = 3,
|
||||
compilationMode = CompilationMode.Partial(),
|
||||
setupBlock = {
|
||||
setupGroup("group-read-receipt", BenchmarkSetup::setupGroupReadReceipt, withConversationOpen)
|
||||
|
||||
@@ -39,8 +39,8 @@ class MessageProcessingBenchmarks {
|
||||
private fun run(withConversationOpen: Boolean) {
|
||||
benchmarkRule.measureRepeated(
|
||||
packageName = "org.thoughtcrime.securesms.benchmark",
|
||||
metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageContentProcessor,
|
||||
iterations = 5,
|
||||
metrics = BenchmarkMetrics.incomingMessageObserver + BenchmarkMetrics.messageContentProcessor + BenchmarkMetrics.individualDataMessageProcessor,
|
||||
iterations = 3,
|
||||
compilationMode = CompilationMode.Partial(),
|
||||
setupBlock = {
|
||||
BenchmarkSetup.setup("message-send", device)
|
||||
@@ -60,7 +60,7 @@ class MessageProcessingBenchmarks {
|
||||
|
||||
BenchmarkSetup.releaseMessages(device)
|
||||
|
||||
device.wait(Until.hasObject(By.textContains("101")), 10_000L)
|
||||
device.wait(Until.hasObject(By.textContains("501")), 10_000L)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,12 +24,12 @@ class StartupBenchmarks {
|
||||
|
||||
@Test
|
||||
fun coldStartNone() {
|
||||
measureStartup(5, CompilationMode.None())
|
||||
measureStartup(3, CompilationMode.None())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun coldStartBaselineProfile() {
|
||||
measureStartup(5, CompilationMode.Partial(BaselineProfileMode.Require))
|
||||
measureStartup(3, CompilationMode.Partial(BaselineProfileMode.Require))
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMetricApi::class)
|
||||
|
||||
Reference in New Issue
Block a user