From 9eee5d9e1e08373c12eb7c962f30ba9e8028375e Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 12 Nov 2025 08:27:59 -0500 Subject: [PATCH] slight performance improvement on the reqflow --- .../client/reqs/NostrClientStaticReqAsStateFlow.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/relay/client/reqs/NostrClientStaticReqAsStateFlow.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/relay/client/reqs/NostrClientStaticReqAsStateFlow.kt index 65897db25..94be9ef79 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/relay/client/reqs/NostrClientStaticReqAsStateFlow.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/relay/client/reqs/NostrClientStaticReqAsStateFlow.kt @@ -65,7 +65,7 @@ fun INostrClient.reqResultsInOrderAsFlow( val subId = RandomInstance.randomChars(10) var hasBeenLive = false val eventIds = mutableSetOf() - val events = mutableListOf() + var currentEvents = listOf() val listener = object : IRequestListener { @@ -77,12 +77,16 @@ fun INostrClient.reqResultsInOrderAsFlow( ) { if (event.id !in eventIds) { if (hasBeenLive) { - events.add(0, event) + // faster + val list = ArrayList(1 + currentEvents.size) + list.add(event) + list.addAll(currentEvents) + currentEvents = list } else { - events.add(event) + currentEvents = currentEvents + event } eventIds.add(event.id) - trySend(events.toList()) + trySend(currentEvents) } }