Heim > Java > JavaErste Schritte > Hauptteil

Wie läuft Java-Code?

(*-*)浩
Freigeben: 2019-11-13 09:24:28
Original
1890 Leute haben es durchsucht

Wie läuft Java-Code?

Wie führt die Java Virtual Machine Java-Bytecode aus?

Aus Sicht der virtuellen Maschine erfordert die Ausführung von Java-Code zunächst das Laden der kompilierten Klassendatei in die virtuelle Java-Maschine. Die geladene Java-Klasse wird im Methodenbereich gespeichert. Bei der tatsächlichen Ausführung führt die virtuelle Maschine den Code im Methodenbereich aus. (Empfohlenes Lernen: Java-Kurs)

Wie läuft Java-Code?

Während des laufenden Prozesses, wann immer eine Java-Methode aufgerufen wird, die Java Virtual Machine Generieren Sie einen Stapelrahmen im Java-Methodenstapel des aktuellen Threads, um lokale Variablen und Bytecode-Operanden zu speichern. Die Größe dieses Stapelrahmens wird im Voraus berechnet, und die Java Virtual Machine erfordert keine kontinuierliche Verteilung der Stapelrahmen im Speicherraum.

Wie läuft Java-Code?

In Hotspot hat der obige Übersetzungsprozess zwei Formen: Die erste ist Interpretation und Ausführung, dh die Übersetzung des Bytecodes nacheinander in Maschinencode und die Ausführung ; Die zweite Methode ist die Just-in-Time-Kompilierung (JIT), die den gesamten in einer Methode enthaltenen Bytecode vor der Ausführung in Maschinencode kompiliert.

Der Vorteil des ersteren besteht darin, dass nicht auf die Kompilierung gewartet werden muss, während der Vorteil des letzteren darin besteht, dass er tatsächlich schneller ausgeführt wird. HotSpot verwendet standardmäßig den Hybridmodus, der die Vorteile der interpretierten Ausführung und der Just-in-Time-Kompilierung vereint. Er interpretiert und führt zunächst den Bytecode aus und kompiliert dann die Hotspot-Codes, die im laufenden Betrieb wiederholt in Methodeneinheiten ausgeführt werden.

Wie effizient ist die Java Virtual Machine?

Just-in-Time-Kompilierung basiert auf der Annahme, dass das Programm der 80/20-Regel entspricht, d. h. 20 % des Codes belegen 80 % der Rechenressourcen.

Für den selten verwendeten Code, der den Großteil einnimmt, müssen wir keine Zeit damit verbringen, ihn in Maschinencode zu kompilieren, sondern müssen ihn andererseits interpretieren und ausführen, für den Hot-Code, der nur einen Platz einnimmt kleiner TeilWir können es in Maschinencode kompilieren, um die gewünschte Laufgeschwindigkeit zu erreichen.

Theoretisch kann die Ausführungseffizienz eines JIT-kompilierten Java-Programms die von C++ übertreffen. Dies liegt daran, dass die Just-in-Time-Kompilierung im Vergleich zur statischen Kompilierung über die Laufzeitinformationen des Programms verfügt und auf der Grundlage dieser Informationen entsprechende Optimierungen vornehmen kann.

Zum Beispiel: Bei einem virtuellen Methodenaufruf gibt es zwar viele Zielmethoden, es kann jedoch sein, dass während des tatsächlichen Betriebs nur eine davon aufgerufen wird. Diese Informationen können vom Just-in-Time-Compiler ausgenutzt werden, um den Overhead virtueller Methodenaufrufe zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie läuft Java-Code?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage