28 Ekim 2014 Salı

Dalvik'den ART'ye geçiş!

Bu konu benim Android 5.0'dan beklediğim her şeyi kapsamasına rağmen Google çok güzel bir kartlı tema yapmayı da unutmamış.
Biraz ART'nin güzelliklerinden bahsedeyim. Bu konu hakkında ayrıntılı bir inceleme göremedim, bu yüzden her yabancı kaynaktan önemli kısımlar alıp bunu Türkçe olarak anlatmaya çalışacağım.

İlk başta Dalvik ve ART'nin ne olduğundan bahsedeyim.

Dalvik ve ART Google şirketinin Android için ürettiği bir Sanal Makine'dir.
Bu kısaca Android işletim sistemi ile telefonunuzun uygulamaları arasındaki köprüdür.
Yani telefonunuzun tüm işlemleri buradan gelir-geçer.
Demek istediğim şey; bu bir elektronik cihazın en hassas yazılımsal parçasıdır.

Anlamayan biri bile olsanız şu üste koyduğum diyagramı 2 dakika inceleyin. Dalvik ile ART'nin mimari farkını anlatıyor. En azından bir fikir sahibi olursunuz olay hakkında.

Dalvik, Android'in 2.2 sürümü ile 2010 yılında gelmişti ama şimdi gördüğünüz üzere teknolojinin çok hızlı gelişmesiyle yeterli olamamaya başladı.
ART ise Android 4.4 ile Nexus serisine bir seçenek olarak açıldı ama yine de tam performansında değildi.

Tam bitmemiş halinde Nexus 5'deki 4.4'ün ART performansı bile çok iyi.
Benchmark(Performans) testi farkları;

Bunlar çok büyük performans farkları.

Bunu acayip bir olay gibi anlattığıma bakmayın. Telefon performansının bu kadar artması sadece bir yan etki.

Bunun asıl başlanma nedeni Garbage Collection adlı bir olay. Hazır bunun hakkında bir Türkçe kaynak (Wikipedia) varken size ihtiyacımız olan kısmı kopyala yapıştır yaparak yazıma devam edeyim.

Bilgisayar Biliminde garbage collection kaynak yönetiminin özel bir adımıdır. Bilgisayar hafızasının yönetilmesi işleminde kullanılmaktadır.

Garbage collection kullanılan hafıza alanlarının izini sürerek ihtiyaç duyulmayan alanları işletim sistemine iade etmektedir. Yeni bir talep geldiği zamanda yer bulup programa göndermektedir.
ART ekibi bu olayı nasıl Optimize edebilecekleri hakkında çok çalışmışlar. Çünkü bu eski sürümlerde çok sorun yaratıyordu, çok yavaştı.
Dalvik sürümünde bu olay 10ms kadar zaman alırken ART'de bunu 2ms'nin altına indirdiklerini iddia ediyorlar.
Bu demek oluyor ki Android uygulamalarında gördüğümüz Frame Drop'lar (Üzgünüm, Türkçesi yok) ART'de gerçekleşmeyecek. Yani telefon uygulama açarken Ram yüzünden bir kasma yaşamayacak.

ART ile bir telefonu kilitlemeniz neredeyse imkansız. Ama hadi gördüğünüz tüm oyunlara girmeye çalıştınız, attınız, fırlattınız telefonu falan filan... Bu durumda bir Full Garbage Collection devreye girecek ve arka planda ne varsa her şeyi çok küçük sürelerde kapatıp telefonu eski haline getirebilecek.
Dalvik ile telefon kendini kapatıp açardı. Şimdi sadece arka plandakileri kapatacak.
Bu olayla beraber bir Android telefonu dondurmak imkansız hale geliyor.

Aynı zamanda bazı sitelerde dolaşan bir söylentiye göre yeni bir Hafıza sistemi gelmiş ART ile.
Rosalloc adına kadar ulaşabildim, başka bir şey bulamadım. Eğer bu konuda bir bilginiz varsa mesaj kutusu hemen aşağıda.

Newrelic, Dalvik ve ART'yi karşılaştırmak için çeşitli testler yapmış.
Bir kod yazmışlar, Dalvik ve ART'nin bu kodu ne kadar hızlı işleyeceğine bakmışlar.
Dalvik ile 1400ms sürerken ART ile sadece 400ms sürmüş. Bunu yaparken de ART, Dalvik'e göre 2MB daha az Ram harcamış. Toplam harcanan Ram'e bakarsak %20 daha az harcamış oluyor.

Ve ART'nin 1080p ekranı olan 512mb Ram'li bir Android telefonda çalışabileceğini unutmayın. Bu söylediğim Ram tüketimi hakkında yeterli bir bilgi vermiştir diye tahmin ediyorum.

Peki hiç mi kötü yanı yok?
Var. Bir uygulamayı çalıştırma süresi ve o uygulamanın sensörlerinin tepki süresi gibi konuların hepsini çok büyük oranlarda geliştirmiş, hatta bir Android telefonun bir daha hiç kasmayacağı gibi çok iddialı bir söylemde bulunmuş olsalar da ART'nin tek kötü yanı uygulamaların kurulum süresinin ve boyutunun artması.
Ama tabii ki hafıza kart slotlarımızın olduğunu unutmamak lazım...

Ben anlatabildiğim kadar anlatmaya çalıştım. Yazdığımdan daha ayrıntılı bir Türkçe kaynak bulunmuyor.
Ama İngilizceniz yeterliyse Google'ın kendi yazılarına bakarak daha ayrıntılı biçimde inceleyebilirsiniz.
Introducing ART ve Verifying App Behavior on the Android Runtime (ART)


Hiç yorum yok:

Yorum Gönder