2 Stimmen

Optimierung der JVM- und CLR-Zuweisung

Weisen die JVM und die .NET VM Objekte auf dem Stack zu, wenn für die Laufzeitumgebung offensichtlich ist, dass die Lebensdauer eines Objekts auf einen bestimmten Bereich begrenzt ist?

5voto

Steve K Punkte 19080

Die JVM tut dies. Unter den richtigen Umständen kann sie die Zuweisung sogar vollständig aufheben.

Dieses Zitat Artikel.

Die Java-Sprache bietet keine Möglichkeit, ein Objekt explizit auf dem Stack zuzuweisen, aber diese Tatsache hindert JVMs nicht daran, die Stack-Allokation zu verwenden, wo es angebracht ist. JVMs können eine Technik namens Escape-Analyse verwenden, mit der sie feststellen können, dass bestimmte Objekte während ihrer gesamten Lebensdauer auf einen einzigen Thread beschränkt bleiben, und dass diese Lebensdauer durch die Lebensdauer eines bestimmten Stack-Frames begrenzt ist. Solche Objekte können sicher auf dem Stack und nicht auf dem Heap zugewiesen werden. Noch besser ist, dass die JVM bei kleinen Objekten die Zuweisung vollständig optimieren und die Felder des Objekts einfach in Register aufnehmen kann.

Mehr Informationen über Fluchtanalyse aus Wikipedia.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X