Add some timing logs for encryption

This commit is contained in:
valere 2023-02-03 10:15:40 +01:00
parent 82a7f29497
commit 2f1e282950
1 changed files with 35 additions and 22 deletions

View File

@ -39,6 +39,7 @@ import org.matrix.rustcomponents.sdk.crypto.RequestType
import timber.log.Timber
import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject
import kotlin.system.measureTimeMillis
private val loggerTag = LoggerTag("PrepareToEncryptUseCase", LoggerTag.CRYPTO)
@ -62,12 +63,16 @@ internal class PrepareToEncryptUseCase @Inject constructor(
Timber.tag(loggerTag.value).d("prepareToEncrypt() roomId:$roomId Check room members up to date")
// Ensure to load all room members
if (ensureAllMembersAreLoaded) {
measureTimeMillis {
try {
loadRoomMembersTask.execute(LoadRoomMembersTask.Params(roomId))
} catch (failure: Throwable) {
Timber.tag(loggerTag.value).e("prepareToEncrypt() : Failed to load room members")
throw failure
}
}.also {
Timber.tag(loggerTag.value).d("prepareToEncrypt() roomId:$roomId load room members took: $it ms")
}
}
val userIds = getRoomUserIds(roomId)
val algorithm = getEncryptionAlgorithm(roomId)
@ -85,7 +90,11 @@ internal class PrepareToEncryptUseCase @Inject constructor(
}
private suspend fun preshareRoomKey(roomId: String, roomMembers: List<String>, forceDistributeToUnverified: Boolean) {
measureTimeMillis {
claimMissingKeys(roomMembers)
}.also {
Timber.tag(loggerTag.value).d("prepareToEncrypt() roomId:$roomId claimMissingKeys took: $it ms")
}
val keyShareLock = roomKeyShareLocks.getOrPut(roomId) { Mutex() }
var sharedKey = false
@ -113,6 +122,7 @@ internal class PrepareToEncryptUseCase @Inject constructor(
HistoryVisibility.JOINED
}
)
measureTimeMillis {
keyShareLock.withLock {
coroutineScope {
olmMachine.shareRoomKey(roomId, roomMembers, settings).map {
@ -133,6 +143,9 @@ internal class PrepareToEncryptUseCase @Inject constructor(
}.joinAll()
}
}
}.also {
Timber.tag(loggerTag.value).d("prepareToEncrypt() roomId:$roomId shareRoomKeys took: $it ms")
}
// If we sent out a room key over to-device messages it's likely that we created a new one
// Try to back the key up