A teljesítményfigyelés az alkalmazás működési metrikáinak folyamatos gyűjtése és elemzése a lassulások, memóriaszivárgások és az erőforrások nem optimális használatának feltárására. A Android Performance Guide, 2025 szerint a figyelés lehetővé teszi a metrikák eltéréseinek korai szakaszban történő észlelését és a felhasználói élmény romlásának megelőzését, mielőtt a tömeges panaszok megkezdődnének.
Főbb pontok
Teljesítményfigyelés az alkalmazás viselkedésének kvantitatív értékelése a végrehajtási idő, memóriahasználat, képkockasebesség és energiafogyasztás metrikáinak gyűjtésén keresztül. Ellentétben az összeomlás-jelentéssel, amely csak a végzetes hibákat rögzíti, a teljesítményfigyelés a fokozatos romlást követi nyomon: az alkalmazás működik, de lassabban, mint kellene.
A Google (2024) szerint a felhasználók 53%-a bezárja az alkalmazást, ha az 3 másodpercnél tovább tölt. Minden további késlekedési másodperc átlagosan 20%-kal csökkenti a konverziót kategóriánként. Ez a teljesítményfigyelést nemcsak technikai gyakorlattá, hanem üzleti szükségletté teszi a mobiltermékek számára.
A modern teljesítményfigyelés négy szintet fed le: kliens oldal (iOS, Android), hálózat (API-kérések, WebSocket), backend-szolgáltatások és infrastruktúra. A mobilfejlesztésben a hangsúly a kliensmetrikákon van, mivel a legtöbb teljesítményprobléma pontosan a felhasználó eszközén jelentkezik.
A teljes körű figyeléshez öt metrikacsoportot kell követni, amelyek mindegyike a felhasználói élmény egy-egy aspektusáért felelős. Az FPS (frames per second) az animációk és görgetés simaságát mutatja — a 30 képkocka/másodperc alatti érték lassulásként érzékelhető.
Az alkalmazás hidegindítási ideje — az ikon megérintésétől a felület teljes készenlétéig. Melegindítási idő — visszatérés a háttérből. Válaszidő a felhasználói műveletre (tap-to-response). Az Android indítási idejét az ActivityManager méri, iOS esetén — a dyld és a premain idő. A Firebase Performance szerint a top-100 alkalmazás hidegindítási mediánideje 1,8 másodperc.
A RAM-fogyasztás nem haladhatja meg az eszközön elérhető mennyiség 80%-át, ellenkező esetben a rendszer elkezdi kirakni az alkalmazást a háttérből. A memórialábnyomot az Xcode Instruments (iOS) és az Android Profiler követi nyomon. A memóriaszivárgások az ismétlődő műveleteknél — például képernyők közötti navigációnál — tapasztalható fogyasztásnövekedéssel észlelhetők.
A HTTP-kérés végrehajtási ideje, a válasz mérete, az időtúllépések és hibák gyakorisága. A hálózati késleltetés különösen kritikus az instabil kapcsolati körülmények között működő mobilalkalmazásoknál (3G, metró, lift, barangolás). Javasolt a p95 válaszidő követése — pontosan ez mutatja a „legnehezebb” felhasználók élményét a legrosszabb hálózati körülmények között.
| Metrika | Normál | Kritikus |
|---|---|---|
| Cold start | 2 s-ig | több mint 4 s |
| FPS | 55–60 | kevesebb mint 30 |
| API response | 500 ms-ig | több mint 2 s |
| Memory usage | 200 MB-ig | több mint 400 MB |
| ANR rate | kevesebb mint 0,1% | több mint 0,5% |
A Real User Monitoring (RUM) adatokat gyűjt a valós felhasználói eszközökről a termelési környezetben. Ez a módszer a tényleges késleltetéseket mutatja, amelyeket a felhasználók tapasztalnak, figyelembe véve eszközeiket, operációsrendszer-verzióikat, hálózatukat és földrajzi helyüket. A RUM adja a legpontosabb képet a teljesítményről, de függ attól, hogy mely felhasználók kerültek a mintába.
A Synthetic Monitoring ezzel szemben előre meghatározott forgatókönyveket hajt végre teszteszközökön ellenőrzött körülmények között. Lehetővé teszi a regresszió észlelését, mielőtt az elérné a felhasználókat, és a problémák reprodukálását azonos környezetben. A Firebase Test Lab és a BrowserStack szintetikus teszteket biztosít valós eszközökön kézi indítás nélkül.
Az optimális stratégia mindkét megközelítés kombinációja: a szintetikus tesztek elkapják a regressziókat a CI-fázisban, a RUM pedig a valós képet adja a termelésben. A Datadog (2024) szerint a mindkét módszert használó csapatok 35%-kal több teljesítményproblémát észlelnek, mielőtt azok incidenssé válnának.
A Firebase Performance Monitoring egy ingyenes eszköz a Google-tól a teljesítménymetrikák gyűjtésére iOS és Android rendszeren. Automatikusan méri az alkalmazás indítási idejét, a HTTP-kéréseket és a képernyők megjelenítését anélkül, hogy kódot kellene írni. A telepítéshez elegendő hozzáadni az SDK-t a projekthez és aktiválni a Performance modult a Firebase konzolban.
Az SDK csatlakoztatása után a Firebase Performance automatikusan trace-t hoz létre minden HTTP-kéréshez URLSession (iOS) vagy OkHttp (Android) segítségével. A képernyő-megjelenítést a UIViewController és Activity esetében mérik, rögzítve az időt az onCreate/viewDidLoad-tól az első megjelenítés befejezéséig. Az összes metrika a Firebase konzolban kerül összesítésre alkalmazásverziók, eszközök és országok szerinti bontásban.
import com.google.firebase.perf.FirebasePerformance
import com.google.firebase.perf.metrics.Trace
class PaymentService {
private val firebasePerf = FirebasePerformance.getInstance()
fun processPayment(amount: Double) {
val trace = firebasePerf.newTrace("payment-flow")
trace.start()
trace.putAttribute("amount", amount.toString())
// fizetés végrehajtása
trace.stop()
}
}
A kód egyéni trace-t hoz létre a fizetési forgatókönyvhöz az összeg attribútumával. Ezen a trace-en keresztül a Firebase konzolban látható a fizetés végrehajtási idejének mediánja és p95 értéke, alkalmazásverziók és eszközök szerint csoportosítva.
A Firebase automatikusan elfogja a hálózati kéréseket, és rögzíti az URL-t, a válaszkódot, a payload méretét és a végrehajtási időt. Az Androidon lévő OkHttp esetében az automatikus instrumentáció további konfiguráció nélkül működik. A hálózati kérések a konzolban végpontok szerinti csoportosítással jelennek meg, ami lehetővé teszi egy adott API lassulásának gyors észlelését.
A szabványos metrikák az általános teljesítményt fedik le, de az üzleti folyamatok diagnosztizálásához a konkrét forgatókönyvek instrumentációja szükséges. Az egyedi trace-ek lehetővé teszik a hitelesítés, a hírcsatorna betöltésének, a képfeldolgozásnak vagy az adatszinkronizálásnak a végrehajtási idejének mérését.
Minden egyedi trace-nek értelmes nevet kell adni „forgatókönyv-művelet” formátumban, és attribútumokat kell tartalmaznia a szűréshez. Például egy „image-upload” trace „file_size” és „compression_quality” attribútumokkal lehetővé teszi a betöltési idő kép méretétől való függésének feltárását. Javasolt, hogy képernyőnként ne hozzon létre 20-nál több egyedi trace-t — a túlzott instrumentáció zajt kelt és megnehezíti az elemzést.
import FirebasePerformance
func trackImageUpload(data: Data) {
let trace = Performance.startTrace(name: "image-upload")
trace?.setValue(data.count, forAttribute: "file_size")
trace?.setValue("high", forAttribute: "compression")
// kép betöltése
trace?.stop()
}
A Swift példa trace-t hoz létre a kép betöltéséhez a fájlméret és a tömörítési szint attribútumaival. A Firebase konzolban ezek az attribútumok a metrikák csoportosítására és szűrésére szolgáló mezőkké válnak.
A metrikák gyűjtése riasztási rendszer nélkül haszontalan. A riasztásnak értesítenie kell a csapatot a metrikák megengedett határokon túli kilépéséről, ahol a riasztási küszöbértékek három szintre oszlanak: figyelmeztetés (warning), kritikus (critical) és üzemzavar (outage). Minden szint meghatározza az értesítési csatornát: warning — a csapat Slack-csatornájára, critical — az ügyeletes mérnök PagerDuty-jába, outage — tömeges küldés az összes érdekelt félnek.
Mobil metrikák esetében ajánlott percentiliseken alapuló dinamikus küszöbértékek használata: a hidegindítás p95 ideje meghaladja a 4 másodpercet — kritikus riasztás. A statikus küszöbértékek (például CPU > 90%) rosszabbul működnek, mert nem veszik figyelembe a terhelés normál ingadozását a napszaktól és a hét napjától függően. A Firebase Performance támogatja a riasztások konfigurálását a Firebase Console-on keresztül, Slackbe, PagerDuty-ba és e-mailbe küldéssel, eszkalációs lehetőséggel a visszaigazolás elmaradása esetén.
A Incident Management Survey (2024) szerint azok a csapatok, amelyek a riasztásokat percentilisek alapján konfigurálják az átlagértékek helyett, 45%-kal kevesebb incidenst hagynak ki. Az átlagérték (average) kisimítja a kiugrásokat — a p95 garantáltan a legrosszabb forgatókönyvet mutatja a felhasználók számára, függetlenül a napszaktól és a terhelés szezonális ingadozásától.
Gyakran Ismételt Kérdések
Fő eszközök: Firebase Performance Monitoring (ingyenes, alapfunkciók), Dynatrace (vállalati RUM), New Relic Mobile, Datadog RUM és Instabug (mobilalkalmazásokra specializálva). A választás a költségvetéstől és a szükséges elemzési mélységtől függ.
A metrikákat valós időben kell gyűjteni és megjeleníteni a műszerfalon, legfeljebb 5 perces késleltetéssel. A trendek elemzése hetente egyszer ajánlott. Az automatikus riasztásoknak emberi beavatkozás nélkül kell aktiválódniuk a küszöbértékek túllépésekor — ez az egyetlen módja a problémákra való reagálásnak, mielőtt a felhasználók észrevennék azokat.
Minimális készlet: hidegindítási idő, FPS, ANR-arány (Android) vagy watchdog-megszakítások (iOS), HTTP-hibaarány és memóriahasználat. Ez elegendő a teljesítményproblémák 80%-ának észleléséhez egy tipikus mobilprojektben. Az alkalmazás növekedésével a pontosabb diagnózis érdekében hozzáadódnak az adott képernyők és üzleti forgatókönyvek metrikái.
Igen, a teljesítményfigyelési SDK 1–3 MB-ot ad hozzá az alkalmazás méretéhez az eszköztől függően. A Firebase Performance Monitoring körülbelül 1,2 MB-ot ad hozzá. Javasolt az SDK-t csak a teszt- és éles build-ekbe belevenni, a debug build-ekből kihagyni.
Ha az API-válaszra való várakozási idő magas, de a szervermetrikák normálisak — a probléma a kliens oldalon van (eszköz hálózata, DNS, TLS-kézfogás). Ha a szerver magas terhelést vagy lassú adatbázis-lekérdezéseket mutat — a probléma a backend oldalon van. A Distributed tracing egyértelmű választ ad a klienskérés és a szerverfeldolgozás összekapcsolásával.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is