Displaying a bytecounter for events in memory when the app pauses.
This commit is contained in:
@@ -9,6 +9,7 @@ import com.vitorpamplona.amethyst.model.TimeUtils
|
|||||||
import com.vitorpamplona.amethyst.model.toHexKey
|
import com.vitorpamplona.amethyst.model.toHexKey
|
||||||
import com.vitorpamplona.amethyst.service.CryptoUtils
|
import com.vitorpamplona.amethyst.service.CryptoUtils
|
||||||
import com.vitorpamplona.amethyst.service.nip19.Nip19
|
import com.vitorpamplona.amethyst.service.nip19.Nip19
|
||||||
|
import com.vitorpamplona.amethyst.service.relays.bytesUsedInMemory
|
||||||
import fr.acinq.secp256k1.Hex
|
import fr.acinq.secp256k1.Hex
|
||||||
import java.lang.reflect.Type
|
import java.lang.reflect.Type
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
@@ -24,6 +25,16 @@ open class Event(
|
|||||||
val content: String,
|
val content: String,
|
||||||
val sig: HexKey
|
val sig: HexKey
|
||||||
) : EventInterface {
|
) : 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 id(): HexKey = id
|
||||||
|
|
||||||
override fun pubKey(): HexKey = pubKey
|
override fun pubKey(): HexKey = pubKey
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import java.math.BigDecimal
|
|||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
interface EventInterface {
|
interface EventInterface {
|
||||||
|
fun countMemory(): Long
|
||||||
|
|
||||||
fun id(): HexKey
|
fun id(): HexKey
|
||||||
|
|
||||||
fun pubKey(): HexKey
|
fun pubKey(): HexKey
|
||||||
|
|||||||
@@ -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", "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", "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 {
|
LocalCache.notes.values.groupBy { it.event?.kind() }.forEach {
|
||||||
Log.d("STATE DUMP", "Kind ${it.key}: \t${it.value.size} elements ")
|
Log.d("STATE DUMP", "Kind ${it.key}: \t${it.value.size} elements ")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user