Skip to content

Commit

Permalink
Mede uso médio de CPU, GPU e RAM
Browse files Browse the repository at this point in the history
  • Loading branch information
ThalesBezerra21 committed Jun 17, 2024
1 parent 4b45ecd commit 8194790
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@ class AppViewModel(application: Application) : AndroidViewModel(application) {
val messages = emptyList<MessageData>().toMutableStateList()
val report = mutableStateOf("")
val modelName = mutableStateOf("")
private var modelChatState = mutableStateOf(ModelChatState.Ready)
var modelChatState = mutableStateOf(ModelChatState.Ready)
@Synchronized get
@Synchronized set
private val engine = MLCEngine()
Expand Down
22 changes: 22 additions & 0 deletions android/MLCChat/app/src/main/java/ai/mlc/mlcchat/ChatView.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package ai.mlc.mlcchat

import ai.mlc.mlcchat.utils.benchmark.Sampler
import ai.mlc.mlcchat.utils.benchmark.cpuUsage
import ai.mlc.mlcchat.utils.benchmark.gpuUsage
import ai.mlc.mlcchat.utils.benchmark.ramUsage
import android.util.Log
import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.Arrangement
Expand Down Expand Up @@ -62,7 +64,27 @@ import kotlinx.coroutines.withContext
fun ChatView(
navController: NavController, chatState: AppViewModel.ChatState
) {

val localFocusManager = LocalFocusManager.current
val context = LocalContext.current

val cpuSamples by remember { mutableStateOf(Sampler()) }
val gpuSamples by remember { mutableStateOf(Sampler()) }
val ramSamples by remember { mutableStateOf(Sampler()) }

LaunchedEffect(Unit) {
withContext(Dispatchers.IO) {
while(true) {
delay(25)
if(chatState.modelChatState.value !== ModelChatState.Generating)
continue
cpuSamples.addSample(cpuUsage(context))
gpuSamples.addSample(gpuUsage())
ramSamples.addSample(ramUsage())
}
}
}

Scaffold(topBar = {
TopAppBar(
title = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package ai.mlc.mlcchat.utils.benchmark

class Sampler {

private val samples = arrayListOf<Int>()
private var total = 0
private var numSamples = 0

fun addSample(sample: Int): Unit {
total += sample
numSamples ++
samples.add(sample)
}

fun average(): Int? {
if(numSamples == 0) return null
return total/numSamples
}

}

0 comments on commit 8194790

Please sign in to comment.