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 6d1d38932..afa9705b2 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 840a59773..f548f60b4 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 9389d7164..43efacc9d 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 ") }