Im Laufe der Zeit sind Suns JVM und JIT ziemlich schlau geworden. Dinge, die früher als notwendige Mikrooptimierung bekannt waren, werden nicht mehr benötigt, weil sie für Sie erledigt werden.Smart JVM und JIT Micro-Optimierungen
Zum Beispiel war es früher so, dass Sie alle möglichen Klassen als final markieren sollten, so dass die JVM so viel Code wie möglich einfügt. Nun jedoch weiß das JIT, ob Ihre Klasse endgültig ist, basierend darauf, welche Klassen zur Laufzeit geladen werden. Wenn Sie eine Klasse laden, um die ursprüngliche nicht finalfähig zu machen, werden die Methoden entfernt und die Methode als unmarkiert Finale.
Welche anderen intelligenten Mikrooptimierungen macht die JVM oder JIT für Sie?
BEARBEITEN: Ich habe dies zu einem Community-Wiki gemacht; Ich möchte diese im Laufe der Zeit sammeln.
gut Java könnte schlau sein, aber es verwendet immer noch viele Ressourcen – Roch
@mnml es ist weniger als das, was die gängige Meinung ist. um ein Objekt zu erstellen, denke ich, dass es so etwas wie 2 oder 3 Anweisungen gibt. Ja, so etwas wie C++ ist im Allgemeinen schneller, aber "Ressourcen" sind nicht nur CPU und Speicher; es ist auch Mannstunden. Hardware ist billig, Leute sind teuer. Auf lange Sicht wird Java oft in der Leistung gewinnen, weil sein JIT erstaunlich ist und die App mehr optimieren wird, als die meisten C++ - Anwendungen jemals träumen könnten. –
@Alex Ich wünschte, ich könnte Ihnen sagen, dass Leute Ressourcen sind. So schrecklich es auch zu glauben ist. Ihre Zeit als Angestellter kostet das Unternehmen oft mehr Geld, als es für ein zusätzliches Terabyte auf der Festplatte oder für eine bessere CPU im alten Webservier zu erwarten ist. –