SORU
27 NİSAN 2010, Salı


Neden JVM yığın tabanlı ve Dalvik VM kayıt tabanlı?

Merak ediyorum, neden Sun JVM yığın tabanlı ve DalvikVM kayıt tabanlı yapmaya karar Google karar verildi?

JVM pek işe yaramaz belirli sayıda platform bağımsız olması gerekiyordu beri hedef platformu üzerinde kullanılabilir, varsayabiliriz herhalde. Bu yüzden sadece kayıt ayırma, JİT vb derleyici erteledi. (Eğer yanılıyorsam beni düzeltin.)

Android çocuklar şöyle düşündüm: "hey, bu verimsiz bir şey, bir kayıt vm göre gidip hemen bakalım..."? Ama bir dakika, birden çok Dalvik hedef yaptıklarından farklı android cihazlar var mı? Dalvik işlem kodları kaydeder belirli sayıda kodlanmış?

Piyasadaki tüm mevcut Android cihazlar kayıtları hakkında aynı numarayı mı? Ya da, orada yeniden tahsisi bir kayıt dex-yükleme sırasında yapılır? Tüm bunları nasıl bir araya geliyor?

CEVAP
27 NİSAN 2010, Salı


Peki Java tasarım hedefleri ile uyum içinde bir yığın tabanlı bir VM bir kaç özellikleri vardır:

  1. Yığın tabanlı bir tasarım çok az yapar hedef hakkında varsayımlar donanım (kaydeder, CPU özellikleri), kolay bir VM uygulamak için donanım çok çeşitli.

  2. Talimatlar için işlenen beri büyük ölçüde örtük nesnesi kodu daha küçük olma eğilimindedir. Bu eğer için gidiyoruz eğer önemlidir kod indirme yavaş ağ bağlantısı.

Kayıt tabanlı düzeni ile gidiyor muhtemelen Dalvik kod jeneratör olarak sabit ölçülebilir kodu üretmek için çalışmak zorunda değildir anlamına gelir. Kayıt-Kayıt ya da zengin-fakir mimarisi bir çok çalışan muhtemelen Dalvik handikap olurdu, ama o zamanki hedef - KOL orta-of-the-road çok bir mimari değil.


Ayrıca Dalvik ilk versiyonu bir JİT hiç dahil olmadığını unutmuştum. Eğer talimatları doğrudan yorumlamak için gidiyoruz eğer, o zaman kayıt tabanlı bir düzeni muhtemelen sözlü performans için bir kazanan.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • footiecyclo

    footiecyclo

    26 EYLÜL 2009
  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • LimeFire

    LimeFire

    2 ŞUBAT 2012