Performance
Monitoring wydajności i śledzenie operacji
📖 Przegląd
Moduł Performance (PerformanceMonitor) umożliwia pomiar czasu operacji,
śledzenie metryk i raportowanie do Firebase Performance lub własnego backendu.
Szybki przykład
// Mierzenie operacji
val traceId = ADict.Performance.startTrace("load_data")
// ... operacja
ADict.Performance.stopTrace(traceId)
// Lub z lambdą
val result = ADict.Performance.measure("api_call") {
api.fetchData()
}
⏱️ Traces
startTrace(name: String): String
Rozpocznij trace. Zwraca ID.
stopTrace(traceId: String)
Zakończ trace.
measure<T>(name: String, block: () -> T): T
Zmierz czas bloku i zwróć wynik.
measureSuspend<T>(name: String, block: suspend () -> T): T
Zmierz czas suspending funkcji.
Mierzenie operacji
// Manualne start/stop
fun loadArticles() {
val traceId = ADict.Performance.startTrace("load_articles")
try {
val articles = repository.getArticles()
displayArticles(articles)
} finally {
ADict.Performance.stopTrace(traceId)
}
}
// Z lambdą (zalecane)
fun loadArticles() {
val articles = ADict.Performance.measure("load_articles") {
repository.getArticles()
}
displayArticles(articles)
}
// Suspend
suspend fun fetchData() {
val data = ADict.Performance.measureSuspend("fetch_data") {
api.getData()
}
}
📊 Metryki
recordMetric(name: String, value: Long)
Zapisz metrykę numeryczną.
incrementMetric(name: String, by: Long = 1)
Inkrementuj metrykę.
getMetric(name: String): Long
Pobierz wartość metryki.
Śledzenie metryk
// Zapisz metrykę
ADict.Performance.recordMetric("cache_size", cacheSize)
ADict.Performance.recordMetric("api_response_time", responseTimeMs)
// Inkrementuj
ADict.Performance.incrementMetric("api_calls")
ADict.Performance.incrementMetric("cache_hits")
// Pobierz
val apiCalls = ADict.Performance.getMetric("api_calls")
🏷️ Atrybuty trace
setTraceAttribute(traceId, key, value)
Dodaj atrybut do trace.
Atrybuty
val traceId = ADict.Performance.startTrace("api_request")
ADict.Performance.setTraceAttribute(traceId, "endpoint", "/users")
ADict.Performance.setTraceAttribute(traceId, "method", "GET")
// ... request
ADict.Performance.stopTrace(traceId)
📤 Raportowanie
getReport(): PerformanceReport
Pobierz raport z zebranymi danymi.
clearData()
Wyczyść zebrane dane.