📖 PrzeglądOverview
Moduł Performance (PerformanceMonitor) umożliwia pomiar czasu operacji,
śledzenie metryk i raportowanie do Firebase Performance lub własnego backendu.The Performance module (PerformanceMonitor) enables measuring operation time, tracking metrics, and reporting to Firebase Performance or a custom backend.
// 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. ZwracaReturns ID.
stopTrace(traceId: String)
Zakończ trace.End trace.
measure<T>(name: String, block: () -> T): T
Zmierz czas bloku i zwróć wynik.Measure block time and return result.
measureSuspend<T>(name: String, block: suspend () -> T): T
Zmierz czas suspending funkcji.
// 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ą.Save numeric metric.
incrementMetric(name: String, by: Long = 1)
Inkrementuj metrykę.Increment metric.
getMetric(name: String): Long
Pobierz wartość metryki.Get metric value.
// 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.
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.Clear collected data.