Android Performance: Optimizing Network Request Frequencies

Screen Shot 2016-02-21 at 20.20.02

Uygulamanın sosyal medya haberlerini, hava raporlarını, social feedbackleri verebilmesi için, up to date kalması gereklidir. Ancak çok sık sync olmak da performans için en kötü fikirlerden biridir. Peki o zaman nasıl handle edilmeli?

Oversync bataryayı öldürür. Batarya sadece çipi başlatmak için değil sınrasında 2060 sn ek olarak awake tutmak için de tüketilir.

Çok fazla sync olmak kötü diyoruz ancak şöyle de bir gerçek variyi kullanıcı deneyimini sunabilmek için ki en uygulama güncel datayı gösterebilmeli. Bu sebeple sync olmayı tamamen kesemeyiz. Yapmak zorunda da değiliz. Ancak daha az request yapıp kullanıcıya benzer bir deneyim sunmak da mümkün. Burada önemli olan da şu an yapılması gerekenle bekleyebilir olanı ayırmaktan geçmektedir.

Screen Shot 2016-02-25 at 21.52.25

Sürekli server’a gidip yeni data var mı diye sorgulamaktansa, başka servisler kullanılabilir. Mesela Google Cloud Messaging gibi. Yeni content geldiğinde server’a sinyal gönderir. Böylece hem batarya tüketimini hem de server responselarının sayısını düşürür.

Sürekli sync olunması gereken durumlar için ise kendimiz bir logic kurabiliriz. Mesela requesti yaptık, yeni data yoktu. Bir sonraki sorgu zamanını X2 arttırarak ilerleyebiliriz.

Google Play Services API network oriented taskların düzenlenmesini sağlar. Batching’i de kendi handle eder. Network kullanımıyla ilgili detaylı bilgi almak istenirse de Network Traffic Tool kullanılabilir.

Referans:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.