1. Möchtest Du unser Team im Android OS-Bereich unterstützen? Details dazu findest du hier!
  2. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Was ist neu an JIT ?

Dieses Thema im Forum "Android Allgemein" wurde erstellt von Lopder, 07.10.2010.

  1. Lopder, 07.10.2010 #1
    Lopder

    Lopder Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    67
    Erhaltene Danke:
    0
    Registriert seit:
    08.01.2010
    Hallo

    Kann man mich mal aufklähren ?? :D
    Ich hab öfters gelesen "Android 2.2 dank JIT deutlich schneller" sein soll. Und jetzt würde mich mal intressieren wie das funktioniert. JIT beduetet ja Just-in-time-Kompilierung (JIT).

    1 Frage ist ja war das früher nicht auch schon so ? Die Apps sind ja in sowas ähnlichem wie "Java" entwickelt. und ich dacht das immer schon der Code zuerst in so einen Bytecode kompiliert wird. Und erst dann zur Laufzeit "fertig" kompiliert. Das ist doch schon JIT ? Ich hab leider niergends was gefunden wo das richtig gut erklährt wird.
    2 Frage warum sollte JIT schneller sein ? und im vergleich zu was ?(Ok dazu müsste ich jetzt wissen wie es davor wirklich gemacht wurde) wenn jedes mal der code kompiliert werden muss. Besser wäre es doch nur das erste mal zu kompilieren und dann in einem cache den kompilierten Code zu speichern. Braucht halt wieder Speicher. Also ganz verstehe ich noch nicht was an JIT jetzt neu sein soll ?

    Grüße
     
  2. fabian485, 07.10.2010 #2
    fabian485

    fabian485 Android-Experte

    Beiträge:
    558
    Erhaltene Danke:
    85
    Registriert seit:
    01.10.2009
    Phone:
    HTC Desire HD
    Du hast eben das Prinzip das hinter der Programmiersprache Java steht nicht ganz verstanden.

    Ich versuche es mal im groben möglichst einfach zu erklären.

    Bei einem normalen Compiler (gcc wenn man in C programmiert) wird der Quellcode ja direkt in Maschinensprache übersetzt und direkt vom Prozessor ausgeführt.

    Bei Java hingegen wird wie du schon angemerkt hast nur eine Art Bytecode erzeugt mit dem der Prozessor erst einmal nichts anfangen kann. Dieser Bytecode wird dann von der Java-Virtual-Machine zur Laufzeit interpretiert.
    Es wird bei Java bei der Ausführung der Programme nichts mehr kompiliert, sonder nur interpretiert!!

    Das hat den Vorteil das die Programme (von der Idee her) auf jeder Hardware / OS laufen auf dem eine kompatible Java-VM installiert ist.
    Das kann funktionieren weil der Bytecode nicht vom OS und der darunterliegenden Hardware abhängt.
    (Ist bei normalen Maschinencode ja anders, versuch mal ein Windows Programm auf nem Unix laufen zu lassen, oder Software von x86 Hardware auf nem ARM Gerät auszuführen :) )

    Der Nachteil ist das die Java-VM ja eine weitere Abstraktionsschicht ist die auch Ressourcen verbraucht und das ganze nicht schneller macht.

    Die Idee hinter JIT ist das ich vor der Ausführung des Java Programms den Bytecode in Maschinencode übersetze, welcher dann direkt auf der Hardware deutlich performter läuft.
     
  3. Lopder, 07.10.2010 #3
    Lopder

    Lopder Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    67
    Erhaltene Danke:
    0
    Registriert seit:
    08.01.2010
    Das heutige Java interpretiert ja nicht mehr. Das war doch 1990 oder was weiß ich wann genau. :D.
    Heute ist ja auch be Java immer ein JIT dabei. Java Virtual Machine ? Wikipedia

    Aber jaaa ok. Jetzt wird es mir schon klar. :unsure: Ich bin wohl fälschlicherweise davon ausgegangen das es sich so wie die fortgeschrittene VMs verhält. Ja ok wenn die erste Dalvik VM noch interpretiert hat ja dann klar. Dann macht man quasi die Entwicklung von damals wieder mit :).
     

Diese Seite empfehlen