JIT i dalvik för Android 2.0

Diskussion i 'Frågor, support och diskussion' startad av PatrikS, 17 nov 2009.

  1. PatrikS

    PatrikS Senior Droid Medlem

    Blev medlem:
    29 jun 2009
    Inlägg:
    1 123
    Mottagna gillanden:
    65

    MINA ENHETER

    Jag har nu suttit ett antal timmar och försökt reda ut vad JIT kan göra för oss om/när det kommer i Ecclair, det verkar som det finns i 2.0 men inte aktiverat.
    Cyanogen håller på att labba med det och vissa hävdar att det här kommer ge massiva prestandaförbättringar.

    Jag kan dock inte riktigt se om det kommer bli några otroliga effekter, är det någon här som har några synpunkter på detta?
     
  2. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    Det beror helt på hur det kommer fungera, men om vi drar paralleller till hur det fungerar i en normal Java VM så kommer det göra stor skillnad.
     
  3. PatrikS

    PatrikS Senior Droid Medlem

    Blev medlem:
    29 jun 2009
    Inlägg:
    1 123
    Mottagna gillanden:
    65

    MINA ENHETER

    herrejösses var snabb du var Kaj!

    :)

    Ja, jag hoppas ju på detta, den drawback jag ser är väl att detta kommer ta mer plats i runtime?
     
  4. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    Vilket kommer ta mer plats i runtime? Dalvik VM kommer bli något större. Vet inte hur Dalvik är skapad internt, men den är gjord för att kunna ha många VMs igång samtidigt, och att de inte skall ha så stort footprint. Troligen kan flera VM:ar dela på en laddat JIT-bibliotek. Den JIT-optimerade koden behöver inte bli större (den skulle t.om kunna bli mindre)
     
  5. bjoli

    bjoli Senior Droid Hedersmedlem

    Blev medlem:
    24 jun 2009
    Inlägg:
    1 713
    Mottagna gillanden:
    120

    MINA ENHETER

    Ursäkta en okunnig, men vad är JIT? Java-nånting-Teknologi?
     
  6. Thiesen

    Thiesen Senior Droid Medlem

    Blev medlem:
    26 aug 2009
    Inlägg:
    1 052
    Mottagna gillanden:
    26

    MINA ENHETER

    Just In Time, koden kompileras när den behövs första gången och sen behöver den inte kompileras igen nästa gång du vill att processorn ska köra den...

    http://en.wikipedia.org/wiki/Just-in-time_compilation
     
  7. bjoli

    bjoli Senior Droid Hedersmedlem

    Blev medlem:
    24 jun 2009
    Inlägg:
    1 713
    Mottagna gillanden:
    120

    MINA ENHETER

  8. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    Om man pratar om den JIT (Hotspot) som kommer från Sun och som finns i deras VM så klarar den även av något annat som gör den extra bra, nämligen "adaptive optimization" vilket betyder att när koden körs instrumenteras den hela tiden, och beroende på hur koden körs så kan man i runtime hela tiden göra nya optimeringar på koden. I vissa fall leder det till att koden kan köra snabbare än motsvarande kod skriven i C++ (iom att C++ endast optimeras i compile time). Än så länge är det dock rätt ovanligt att det blir snabbare än C++, men det händer och det kommer hända oftare i framtiden.
     
  9. Perty

    Perty Youth Droid Medlem

    Blev medlem:
    6 aug 2009
    Inlägg:
    119
    Mottagna gillanden:
    2

    MINA ENHETER

    En bra länk som start:

    http://www.h-online.com/open/news/item/Android-s-Dalvik-to-be-JIT-boosted-861870.html

    Och en til:

    http://groups.google.com/group/android-platform/browse_thread/thread/331d5f5636f5f532
     
  10. Perty

    Perty Youth Droid Medlem

    Blev medlem:
    6 aug 2009
    Inlägg:
    119
    Mottagna gillanden:
    2

    MINA ENHETER

  11. PatrikS

    PatrikS Senior Droid Medlem

    Blev medlem:
    29 jun 2009
    Inlägg:
    1 123
    Mottagna gillanden:
    65

    MINA ENHETER

    Tackar för bra svar!

    Jag tänker man på hur otroligt mycket bättre suns jvm har blivit genom åren från 1.1 till 1.6r10 så brukar jag le överseende när folk säger att "men java är ju slött", innan jag tillrättavisar dom. :D

    Det här kan bli det som äntligen gör att vi får det där "flow-wow" som iphone har. :)