From da3cecd324360dfa548dbf49c885b5823518bf41 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 2 Aug 2023 16:34:18 -0400 Subject: [PATCH] Displaying a bytecounter for events in memory when the app pauses. --- .../com/vitorpamplona/amethyst/service/model/Event.kt | 11 +++++++++++ .../amethyst/service/model/EventInterface.kt | 2 ++ .../vitorpamplona/amethyst/ui/navigation/AppTopBar.kt | 2 ++ 3 files changed, 15 insertions(+) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt index 6d1d38932f..afa9705b2a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt @@ -9,6 +9,7 @@ import com.vitorpamplona.amethyst.model.TimeUtils import com.vitorpamplona.amethyst.model.toHexKey import com.vitorpamplona.amethyst.service.CryptoUtils import com.vitorpamplona.amethyst.service.nip19.Nip19 +import com.vitorpamplona.amethyst.service.relays.bytesUsedInMemory import fr.acinq.secp256k1.Hex import java.lang.reflect.Type import java.math.BigDecimal @@ -24,6 +25,16 @@ open class Event( val content: String, val sig: HexKey ) : EventInterface { + + override fun countMemory(): Long { + return 12L + + id.bytesUsedInMemory() + + pubKey.bytesUsedInMemory() + + tags.sumOf { it.sumOf { it.bytesUsedInMemory() } } + + content.bytesUsedInMemory() + + sig.bytesUsedInMemory() + } + override fun id(): HexKey = id override fun pubKey(): HexKey = pubKey diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/EventInterface.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/EventInterface.kt index 840a59773f..f548f60b4a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/EventInterface.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/EventInterface.kt @@ -6,6 +6,8 @@ import java.math.BigDecimal @Immutable interface EventInterface { + fun countMemory(): Long + fun id(): HexKey fun pubKey(): HexKey diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt index 9389d7164a..43efacc9d5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt @@ -514,6 +514,8 @@ fun debugState(context: Context) { Log.d("STATE DUMP", "Addressables: " + LocalCache.addressables.filter { it.value.event != null }.size + "/" + LocalCache.addressables.size) Log.d("STATE DUMP", "Users: " + LocalCache.users.filter { it.value.info?.latestMetadata != null }.size + "/" + LocalCache.users.size) + Log.d("STATE DUMP", "Memory used by Events: " + LocalCache.notes.values.sumOf { it.event?.countMemory() ?: 0 } / (1024 * 1024) + " MB") + LocalCache.notes.values.groupBy { it.event?.kind() }.forEach { Log.d("STATE DUMP", "Kind ${it.key}: \t${it.value.size} elements ") }