Performans monitorinqi tətbiqin iş metrikalarının toplanması və təhlili üçün davamlı prosesdir, yavaşlamaları, yaddaş sızmalarını və resurslardın qeyri-optimal istifadəsini aşkar etmək üçün. Android Performance Guide, 2025-ə görə, monitorinq metrikalardakı sapmaları erkən mərhələdə aşkar etməyə və kütləvi şikayətlər başlamazdan əvvəl istifadəçi təcrübəsinin deqradasiyasının qarşısını almağa imkan verir.
Əsas məqamlar
Performans monitorinqi — tətbiqin davranışının icra müddəti, yaddaş istifadəsi, kadr tezliyi və enerji istehlakı metrikalarının toplanması vasitəsilə kəmiyyətcə qiymətləndirilməsi praktikası. Yalnız ölümcül nasazlıqları qeyd edən crash reporting-dən fərqli olaraq, performans monitorinqi tədricən deqradasiyanı izləyir: tətbiq işləyir, lakin olması gerekəndən yavaş.
Google (2024)-ün məlumatına görə, istifadəçilərin 53%-i tətbiqi 3 saniyədən artıq yüklənərsə bağlayır. Hər əlavə gecikmə saniyəsi kateqoriyalar üzrə orta hesabla konversiyanı 20% azaldır. Bu, performans monitorinqini təkcə texniki praktika deyil, mobil məhsullar üçün biznes zərurəti edir.
Müasir performans monitorinqi dörd səviyyəni əhatə edir: müştəri hissəsi (iOS, Android), şəbəkə (API sorğuları, WebSocket), backend xidmətləri və infrastruktur. Mobil inkişafda diqqət müştəri metrikalarına yönəldilir, çünki performans problemlərinin əksəriyyəti məhz istifadəçinin cihazında yaranır.
Tam monitorinq üçün hər biri istifadəçi təcrübəsinin müəyyən bir aspektinə cavabdeh olan beş metrika qrupunu izləmək lazımdır. FPS (frames per second) animasiyaların və sürüşdürmənin hamarlığını göstərir — saniyədə 30 kadrdan aşağı dəyər göz tərəfindən yavaşlama kimi hiss olunur.
Tətbiqin soyuq başlanğıc vaxtı — ikonaya toxunma anından interfeysin tam hazır olmasına qədər. İsti başlanğıc vaxtı — fonadan qayıdış. İstifadəçi hərəkətinə cavab müddəti (tap-to-response). Android üçün başlanğıc vaxtı ActivityManager vasitəsilə, iOS üçün — dyld və premain vaxtı ilə ölçülür. Firebase Performance məlumatına görə, top-100 tətbiq üçün soyuq başlanğıcın median vaxtı 1.8 saniyədir.
Operativ yaddaş istehlakı cihazda mövcud həcmin 80%-dən çox olmamalıdır, əks halda sistem tətbiqi fondan boşaltmağa başlayır. Yaddaş izi Xcode Instruments (iOS) və Android Profiler vasitəsilə izlənilir. Yaddaş sızmaları təkrarlanan əməliyyatlarda — məsələn, ekranlar arasında keçid zamanı istehlakın artması ilə aşkar edilir.
HTTP sorğusunun icra müddəti, cavab ölçüsü, time-out və xəta tezliyi. Şəbəkə gecikməsi xüsusilə qeyri-sabit əlaqə şəraitində işləyən mobil tətbiqlər üçün kritikdir (3G, metro, lift, rouminq). Məhz ən pis şəbəkə şəraitində olan “ən ağır” istifadəçilərin təcrübəsini göstərən p95 cavab müddətini izləmək tövsiyə olunur.
| Metrika | Normal | Kritik |
|---|---|---|
| Cold start | 2 s-ə qədər | 4 s-dən çox |
| FPS | 55–60 | 30-dan az |
| API response | 500 ms-ə qədər | 2 s-dən çox |
| Memory usage | 200 MB-a qədər | 400 MB-dan çox |
| ANR rate | 0.1%-dən az | 0.5%-dən çox |
Real User Monitoring (RUM) istehsal mühitində real istifadəçi cihazlarından məlumat toplayır. Bu metod istifadəçilərin cihazları, OS versiyaları, şəbəkə və geolokasiyası nəzərə alınmaqla hiss etdikləri faktiki gecikmələri göstərir. RUM performansın ən dəqiq şəklini verir, lakin seçməyə hansı istifadəçilərin düşməsindən asılıdır.
Synthetic Monitoring isə nəzarət olunan şəraitdə test cihazlarında əvvəlcədən təyin edilmiş ssenariləri yerinə yetirir. Bu, reqressiyanı istifadəçilərə çatmadan aşkar etməyə və eyni mühitdə problemləri təkrarlamağa imkan verir. Firebase Test Lab və BrowserStack əl ilə işə salmadan real cihazlarda sintetik testlər təmin edir.
Optimal strategiya hər iki yanaşmanın birləşməsidir: sintetik testlər CI mərhələsində reqressiyaları tutur, RUM isə istehsalda real vəziyyəti göstərir. Datadog (2024)-ə görə, hər iki metoddan istifadə edən komandalar inidentə çevrilməzdən əvvəl 35% daha çox performans problemi aşkar edir.
Firebase Performance Monitoring Google-dan iOS və Android-də performans metrikalarının toplanması üçün pulsuz alətdir. Kod yazmadan tətbiqin başlanğıc vaxtını, HTTP sorğularını və ekranların renderini avtomatik ölçür. Quraşdırmaq üçün layihəyə SDK əlavə etmək və Firebase konsolunda Performance modulunu aktivləşdirmək kifayətdir.
Firebase Performance SDK-sı qoşulduqdan sonra hər HTTP sorğusu üçün URLSession (iOS) və ya OkHttp (Android) vasitəsilə avtomatik trace yaradır. Ekran renderi UIViewController və Activity üçün onCreate/viewDidLoad-dan ilk renderin tamamlanmasına qədər vaxtı qeyd edərək ölçülür. Bütün metrikalar Firebase konsolunda tətbiq versiyaları, cihazlar və ölkələr üzrə bölgü ilə cəmlənir.
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())
// ödənişin icrası
trace.stop()
}
}
Kod məbləğ atributu ilə ödəniş ssenarisi üçün xüsusi trace yaradır. Bu trace vasitəsilə Firebase konsolunda ödənişin icra müddətinin median və p95 dəyərlərini görmək, tətbiq versiyaları və cihazlar üzrə qruplaşdırmaq olar.
Firebase avtomatik olaraq şəbəkə sorğularını ələ keçirir və URL, cavab kodu, payload ölçüsü və icra müddətini qeyd edir. Android-də OkHttp üçün avtomatik instrumentasiya əlavə quraşdırma tələb etmir. Şəbəkə sorğuları konsolda endpointlər üzrə qruplaşdırma ilə göstərilir ki, bu da konkret API-nin yavaşlamasını tez aşkar etməyə imkan verir.
Standart metrikalar ümumi performansı əhatə edir, lakin biznes proseslərinin diaqnostikası üçün konkret ssenarilərin instrumentasiyası tələb olunur. Xüsusi trace-lər autentifikasiya, xəbər lentinin yüklənməsi, şəklin işlənməsi və ya məlumatların sinxronizasiyasının icra müddətini ölçməyə imkan verir.
Hər bir xüsusi trace “ssenari-hərəkət” formatında mənalı ada malik olmalı və filtrləmə üçün atributlar ehtiva etməlidir. Məsələn, “file_size” və “compression_quality” atributları ilə “image-upload” trace-i yükləmə vaxtının şəklin ölçüsündən asılılığını aşkar etməyə imkan verəcək. Bir ekrana 20-dən çox xüsusi trace yaratmamaq tövsiyə olunur — həddindən artıq instrumentasiya səs-küy yaradır və təhlili çətinləşdirir.
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")
// şəklin yüklənməsi
trace?.stop()
}
Swift-də nümunə fayl ölçüsü və sıxılma səviyyəsi atributları ilə şəklin yüklənməsi üçün trace yaradır. Firebase konsolunda bu atributlar metrikaların qruplaşdırılması və filtrlənməsi üçün sahələrə çevrilir.
Xəbərdarlıq sistemi olmadan metrikaların toplanması faydasızdır. Xəbərdarlıq komandanı metrikaların icazə verilən hədləri aşması barədə xəbərdar etməlidir, hədd dəyərləri üç səviyyəyə bölünür: xəbərdarlıq (warning), kritik (critical) və qəza (outage). Hər səviyyə xəbərdarlıq kanalını müəyyən edir: warning — komandanın Slack kanalına, critical — növbətçi mühəndisin PagerDuty-sinə, outage — bütün maraqlı tərəflərə kütləvi göndəriş.
Mobil metrikalar üçün persentillərə əsaslanan dinamik hədd dəyərlərindən istifadə etmək tövsiyə olunur: soyuq başlanğıcın p95 vaxtı 4 saniyəni keçir — kritik alert. Statik hədd dəyərləri (məsələn, CPU > 90%) daha pis işləyir, çünki günün və həftənin vaxtından asılı olaraq yükün normal dəyişmələrini nəzərə almır. Firebase Performance Firebase Console vasitəsilə Slack, PagerDuty və e-poçta göndərmə ilə alertlərin konfiqurasiyasını dəstəkləyir, təsdiq olmadıqda eskalasiya imkanı ilə.
Incident Management Survey (2024)-ə görə, orta dəyərlər əvəzinə persentillərə əsaslanan alertlər quran komandalar 45% daha az inident qaçırır. Orta dəyər (average) sıçrayışları hamarlaşdırır — p95 günün vaxtından və mövsümi yük dəyişmələrindən asılı olmayaraq istifadəçilər üçün ən pis ssenarini zəmanətlə göstərir.
Tez-tez verilən suallar
Əsas alətlər: Firebase Performance Monitoring (pulsuz, əsas funksionallıq), Dynatrace (korporativ RUM), New Relic Mobile, Datadog RUM və Instabug (mobil tətbiqlər üzrə ixtisaslaşma). Seçim büdcədən və tələb olunan təhlil dərinliyindən asılıdır.
Metrikalar real vaxt rejimində 5 dəqiqədən çox olmayan gecikmə ilə toplanmalı və dashboardda göstərilməlidir. Trendləri həftədə bir dəfə təhlil etmək tövsiyə olunur. Avtomatik alertlər insan iştirakı olmadan hədd dəyərləri aşıldıqda işə düşməlidir — bu, istifadəçilər hiss etməzdən əvvəl problemlərə reaksiya verməyin yeganə yoludur.
Minimum dəst: soyuq başlanğıc vaxtı, FPS, ANR dərəcəsi (Android) və ya watchdog dayandırmaları (iOS), HTTP xəta dərəcəsi və yaddaş istifadəsi. Bu tipik mobil layihədə performans problemlərinin 80%-ni aşkar etmək üçün kifayətdir. Tətbiq böyüdükcə daha dəqiq diaqnostika üçün konkret ekranların və biznes ssenarilərinin metrikaları əlavə olunur.
Bəli, performans monitorinqi SDK-sı alətdən asılı olaraq tətbiq ölçüsünə 1–3 MB əlavə edir. Firebase Performance Monitoring təxminən 1.2 MB əlavə edir. SDK-nı yalnız test və istehsal quruluşlarına daxil etmək, debug quruluşlarından çıxarmaq tövsiyə olunur.
API-dən cavab gözləmə müddəti yüksəkdirsə, lakin server metrikaları normaldırsa — problem müştəri tərəfindədir (cihaz şəbəkəsi, DNS, TLS əl sıxması). Server yüksək yük və ya verilənlər bazasına yavaş sorğular göstərirsə — problem backend tərəfindədir. Distributed tracing müştəri sorğusunu server emalı ilə əlaqələndirərək dəqiq cavab verir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun