Performans izleme, uygulama performans metriklerini toplama ve analiz ederek yavaşlamaları, bellek sızıntılarını ve kaynakların optimal olmayan kullanımını belirlemek için sürekli bir süreçtir. Android Performance Guide, 2025'e göre, izleme, metrik sapmalarını erken aşamada tespit etmeyi ve kitlesel şikayetler başlamadan önce kullanıcı deneyiminin bozulmasını önlemeyi sağlar.
Önemli Noktalar
Performans izleme, çalışma zamanı metrikleri, bellek kullanımı, kare hızı ve enerji tüketimini toplayarak uygulama davranışını ölçme pratiğidir. Yalnızca ölümcül hataları yakalayan çökme raporlamasının aksine, performans izleme kademeli bozulmayı takip eder: uygulama çalışır ancak olması gerekenden daha yavaştır.
Google'a (2024) göre, kullanıcıların %53'ü yüklenmesi 3 saniyeden uzun süren bir uygulamayı kapatır. Ek her saniyelik gecikme, kategoriler arasında ortalama %20 dönüşüm azaltır. Bu, performans izlemeyi mobil ürünler için yalnızca teknik bir uygulama değil, bir iş zorunluluğu haline getirir.
Modern performans izleme dört seviyeyi kapsar: istemci tarafı (iOS, Android), ağ (API istekleri, WebSocket), arka uç hizmetleri ve altyapı. Mobil geliştirmede odak, istemci tarafı metriklerinedir çünkü çoğu performans sorunu kullanıcının cihazında ortaya çıkar.
Kapsamlı izleme için, her biri kullanıcı deneyiminin farklı bir yönünden sorumlu olan beş metrik grubu izlenmelidir. FPS (saniyedeki kare sayısı), animasyonların ve kaydırmanın akıcılığını gösterir — saniyede 30 karenin altındaki değerler, göz tarafından yavaşlama olarak algılanır.
Soğuk başlatma süresi — simgeye dokunma anından kullanıcı arayüzünün tamamen hazır olmasına kadar. Sıcak başlatma süresi — arka plandan dönüş. Kullanıcı eylemi yanıt süresi (dokunma-yanıt). Android'de başlatma süresi ActivityManager aracılığıyla, iOS'te — dyld ve premain süresi aracılığıyla ölçülür. Firebase Performance'a göre, ilk 100 uygulama için ortalama soğuk başlatma süresi 1,8 saniyedir.
RAM tüketimi, cihazdaki kullanılabilir kapasitenin %80'ini aşmamalıdır, aksi takdirde sistem uygulamayı arka plandan kaldırmaya başlar. Bellek ayak izi, Xcode Instruments (iOS) ve Android Profiler aracılığıyla izlenir. Bellek sızıntıları, tekrarlanan işlemler sırasında tüketimin artmasıyla tespit edilir — örneğin, ekranlar arasında geçiş yapma.
HTTP isteği yürütme süresi, yanıt boyutu, zaman aşımı sıklığı ve hata oranı. Ağ gecikmesi, dengesiz bağlantı koşullarında (3G, metro, asansör, dolaşım) çalışan mobil uygulamalar için özellikle kritiktir. p95 yanıt süresinin izlenmesi önerilir — en kötü ağ koşullarındaki en “ağır” kullanıcıların deneyimini gösterir.
| Metrik | Normal | Kritik |
|---|---|---|
| Soğuk başlatma | 2 saniyeye kadar | 4 saniyeden fazla |
| FPS | 55–60 | 30'dan az |
| API yanıtı | 500 ms'ye kadar | 2 saniyeden fazla |
| Bellek kullanımı | 200 MB'a kadar | 400 MB'dan fazla |
| ANR oranı | %0,1'den az | %0,5'ten fazla |
Real User Monitoring (RUM), üretim ortamında gerçek kullanıcı cihazlarından veri toplar. Bu yöntem, kullanıcıların cihazlarını, işletim sistemi sürümlerini, ağlarını ve coğrafi konumlarını dikkate alarak yaşadıkları gerçek gecikmeleri gösterir. RUM en doğru performans resmini sağlar ancak örneklemde hangi kullanıcıların olduğuna bağlıdır.
Synthetic Monitoring ise kontrollü koşullarda test cihazlarında önceden tanımlanmış senaryoları yürütür. Kullanıcılara ulaşmadan önce gerilemeyi tespit etmeyi ve sorunları tutarlı bir ortamda yeniden üretmeyi sağlar. Firebase Test Lab ve BrowserStack, manuel yürütme olmadan gerçek cihazlarda sentetik testler sağlar.
En uygun strateji, her iki yaklaşımın birleşimidir: sentetik testler CI aşamasında gerilemeleri yakalar, RUM ise üretimde gerçek resmi sağlar. Datadog'a (2024) göre, her iki yöntemi kullanan ekipler, olay haline gelmeden önce %35 daha fazla performans sorunu keşfeder.
Firebase Performance Monitoring, iOS ve Android'de performans metrikleri toplamak için Google'ın ücretsiz bir aracıdır. Kod yazmadan uygulama başlatma süresini, HTTP isteklerini ve ekran oluşturmayı otomatik olarak ölçer. Kurmak için SDK'yı projenize ekleyin ve Firebase konsolunda Performance modülünü etkinleştirin.
SDK'yı entegre ettikten sonra Firebase Performance, URLSession (iOS) veya OkHttp (Android) aracılığıyla her HTTP isteği için otomatik olarak bir trace oluşturur. Ekran oluşturma, UIViewController ve Activity için ölçülür ve onCreate/viewDidLoad'dan ilk oluşturmanın tamamlanmasına kadar geçen süreyi yakalar. Tüm metrikler Firebase konsolunda toplanır ve uygulama sürümü, cihaz ve ülkeye göre ayrıştırılır.
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())
// ödeme işlemi
trace.stop()
}
}
Kod, tutar özelliği ile ödeme senaryosu için özel bir trace oluşturur. Firebase konsolunda bu trace'i kullanarak, uygulama sürümü ve cihaza göre gruplandırılmış medyan ve p95 ödeme yürütme süresini görebilirsiniz.
Firebase, ağ isteklerini otomatik olarak yakalar ve URL, yanıt kodu, yük boyutu ve yürütme süresini kaydeder. Android'de OkHttp için otomatik enstrümantasyon ek yapılandırma olmadan çalışır. Ağ istekleri, uç noktaya göre gruplandırılmış olarak konsolda görüntülenir ve belirli bir API'nin yavaşlamasının hızlı bir şekilde belirlenmesine olanak tanır.
Standart metrikler genel performansı kapsar, ancak iş süreçlerini teşhis etmek için belirli senaryoların enstrümente edilmesi gerekir. Özel trace'ler, kimlik doğrulama, haber akışı yükleme, görüntü işleme veya veri senkronizasyonunun yürütme süresini ölçmeye olanak tanır.
Her özel trace, “senaryo-eylem” formatında anlamlı bir isme ve filtreleme için özniteliklere sahip olmalıdır. Örneğin, “file_size” ve “compression_quality” özniteliklerine sahip bir “image-upload” trace'i, yükleme süresinin görüntü boyutuna bağımlılığını belirlemeye yardımcı olacaktır. Ekran başına 20'den fazla özel trace oluşturulmaması önerilir — aşırı enstrümantasyon gürültü yaratır ve analizi karmaşıklaştırır.
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")
// görüntü yükleme
trace?.stop()
}
Swift örneği, dosya boyutu ve sıkıştırma seviyesi öznitelikleri ile görüntü yükleme için bir trace oluşturur. Firebase konsolunda bu öznitelikler, metrikleri gruplama ve filtreleme için alanlar haline gelir.
Uyarı sistemi olmadan metrik toplamak işe yaramaz. Uyarılar, metrikler kabul edilebilir sınırları aştığında ekibi bilgilendirmeli ve eşikler üç seviyeye ayrılmalıdır: uyarı, kritik ve kesinti. Her seviye bildirim kanalını belirler: uyarı — ekip Slack kanalına, kritik — nöbetçi mühendis için PagerDuty'ye, kesinti — tüm paydaşlara toplu bildirim.
Mobil metrikler için yüzdelik dilim tabanlı dinamik eşikler kullanılması önerilir: p95 soğuk başlatma süresi 4 saniyeyi aşarsa — kritik uyarı. Statik eşikler (örneğin, CPU > %90) daha az etkilidir çünkü günün saati ve haftanın gününe göre normal yük dalgalanmalarını hesaba katmazlar. Firebase Performance, Firebase Console üzerinden Slack, PagerDuty ve e-posta bildirimleri ile uyarı yapılandırmasını destekler ve onaylanmaması durumunda yükseltme seçenekleri sunar.
Olay Yönetimi Anketi'ne (2024) göre, ortalamalar yerine yüzdelik dilimlere dayalı uyarılar ayarlayan ekipler %45 daha az olayı kaçırır. Ortalama değer aykırı değerleri yumuşatır — p95, günün saati ve mevsimsel yük dalgalanmalarından bağımsız olarak kullanıcılar için en kötü senaryoyu göstermeyi garanti eder.
Sıkça sorulan sorular
Ana araçlar: Firebase Performance Monitoring (ücretsiz, temel işlevsellik), Dynatrace (kurumsal RUM), New Relic Mobile, Datadog RUM ve Instabug (mobil uygulama uzmanlığı). Seçim, bütçeye ve gereken analiz derinliğine bağlıdır.
Metrikler, 5 dakikayı geçmeyen bir gecikmeyle gerçek zamanlı olarak bir panoda toplanmalı ve görüntülenmelidir. Trend analizinin haftada bir kez yapılması önerilir. Otomatik uyarılar, insan müdahalesi olmadan eşikler aşıldığında tetiklenmelidir — kullanıcılar fark etmeden önce sorunlara yanıt vermenin tek yolu budur.
Minimum set: soğuk başlatma süresi, FPS, ANR oranı (Android) veya watchdog sonlandırmaları (iOS), HTTP hata oranı ve bellek kullanımı. Bu, tipik bir mobil projede performans sorunlarının %80'ini tespit etmek için yeterlidir. Uygulama büyüdükçe, daha doğru teşhis için belirli ekranların ve iş senaryolarının metriklerini ekleyin.
Evet, performans izleme SDK'ları araca bağlı olarak uygulama boyutuna 1–3 MB ekler. Firebase Performance Monitoring yaklaşık 1,2 MB ekler. SDK'nın yalnızca test ve üretim yapılarına dahil edilmesi, hata ayıklama yapılarından çıkarılması önerilir.
API yanıt bekleme süresi yüksek ancak sunucu metrikleri normalse — sorun istemci tarafındadır (cihaz ağı, DNS, TLS el sıkışması). Sunucu yüksek yük veya yavaş veritabanı sorguları gösteriyorsa — sorun arka uçtadır. Dağıtık izleme, istemci isteğini sunucu işlemesiyle ilişkilendirerek kesin bir yanıt sağlar.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun