Dalvik VM vs. ART (Android Çalışma Zamanı): Son kullanıcılar için etki?


22

Nexus 5 (Android 4.4 KitKat) ile Google, uygulamaları çalıştırmak için iki çalışma zamanı gönderdi.

Android 4.4 KitKat'ta Çalışma Zamanı seçeneğini seçin Dalvik ve ART Çalışma Süreleri Android 4.4 KitKat'ta

Son kullanıcılar için Dalvik ve ART arasındaki farklar nelerdir? Son kullanıcılar bundan nasıl etkilenebilir? Yeni ART çalışma zamanı seçmem için belirli bir neden var mı?


3
Bu ayarı bulmak için Geliştirici seçeneklerini etkinleştirmek ve araştırmak zorunda olmanız gerçeği , son kullanıcılar için tasarlanmamış bir ipucu olmalıdır.
Dan Hulme

1
@DanHulme Güzel bir nokta, ancak geliştirici olmayan meraklılar Geliştirici seçenekleriyle oynuyorlar ve hatta çoğu kez pozitif olmayan gelişim amaçları için kullanıyorlar.
Android Quesito

Kullanıcı deneyimi sizin açınızdan ne kadar önemliyse o zaman sadece pil gücünün büyük ölçüde tasarruf edildiğini fark edeceksiniz, ancak Dalvik'ten ART'e geçiş yaparken hız farkını göremezsiniz.
Rahul Raina

Yanıtlar:


26

Dalvik VM (Sanal Makine), Google’ın bir Java VM versiyonudur (hangi uygulamaların çalıştığı). VM'ler uygulamaları gerçek donanım ve diğer uygulamalardan izole ve bağımsız tutar. Ancak, bunun çalışması için, Dalvik'in bytecode (sanal makine için tasarlanmış) olarak adlandırılan kodu yerel makine koduna dönüştürmesi gerekir. Bayt kodunun yerel kod dönüşümüne getirdiği performans cezasını en aza indirmek için, sıcak, yani sık kullanılan bayt kodunu yerel koda dönüştüren Just-In-Time (JIT) derlemesi adı verilen bir işlem gerçekleştirilir. 1

ART (Android Runtime), Önceden Zamanlı (AOT) derlemesini kullanan Dalvik'in yerine geçiyor, bu da uygulamalarınızı çalışmaya başlamadan önce çalışmaya hazır bir duruma getiriliyor. Bu genellikle uygulama kurulumu sırasında başlatılması ve kullanılma sürecini çok daha hızlı ve düzgün hale getirmek için yapılır. Bu, derlemenin yalnızca bir kez yapıldığı anlamına geldiğinden, daha iyi pil ömrü de görebilirsiniz.

ART performans ve batarya ömrü açısından daha iyiyse, kullanmaya başlamalı mıyım?

Hayır. Bunu yaparsanız, üçüncü taraf uygulamaları kırabilir. Google, geliştiricilerin üzerinde uygulamalarını test etmeleri için bu ART önizlemesini Android 4.4 ile birlikte gönderdi.

Yan Not: Google’ın ART’e yaklaşımı iOS’u (iOS uygulamaları yereldir, bu nedenle düşük kaliteli donanım özelliklerinde bile daha iyi performans gösterir), ancak nereye gittiğini bilmiyorum ... Başka bir parçalanma? Bkz OEM biri veya her ikisinin kullanarak cihazları inşa etmek serbesttir . Son sürüm uygulamaların çoğunu etkilememeli, ancak% 100 platformlar arası bir şey değil.

1 JIT’in Android 2.2’de Dalvik’e eklendiğini unutmayın.


3
Belki iki gerçeği de dikkate değerdir: ART'in AOT'si DEX'e kıyasla% 20,25 daha fazla depolama kullanan uygulamalar ile sonuçlanır. Artı okuduğum bir Nexus-5 üzerindeki testler öznel hızda veya pil dayanıklılığında herhangi bir farklılık göstermedi. Her ikisi de, KitKat'taki ART'in sadece geliştiricilerin önizleme ve uyumluluk kontrolü (örneğin, WhatsApp'in başarısız olduğu) olması düşünüldüğünde kesinlikle gelişecektir. Bu yüzden ikinci Sachin'in sonucunu çıkardım: Son kullanıcılar için henüz iyi değil.
Izzy

2
Mükemmel cevap Onu biraz daha geliştirme özgürlüğümü kullandım. Ancak son paragrafa katılmıyorum: ART parçalanmayı artırmaz: ART'in üretimin hazır olduğu düşünülürse, Uygulamanızın Dalvik veya ART tarafından çalıştırılması önemli değildir, her ikisi de başlangıç ​​noktasıyla aynı .dex biçimini kullanır. Yalnızca bu ART, AOT ile .dex dosyasını yerel kodlara derler.
Akış
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.