Wie optimiert der Java Compiler



  • Bei binär Sprachen wie C und C++ kann der Compiler einiges wegoptimieren. Ich kann im prinzip so viel wrappen wie ich will und der Compiler optimiert den Overhead wieder weg.

    Wie sieht das bei Java aus? Kostet wrappen unter Java etwas? Oder sind die Java Compiler auch so gut und können alles optimieren?

    Gibt es best. Tipps und Tricks wie man beachten sollte, damit der Compiler besser optimieren kann?



  • Die Hauptarbeit beim Optimieren erledigt der JIT-Compiler, also der der VM, der aus dem Bytecode dann native Code macht. Der ist ebenfalls sehr gut dazu in der Lage, Wrapper wegzuoptimieren und Methoden zu inlinen.
    Dabei tut er sich bei privaten und finalen (und statischen) Methoden am leichtesten, weil die nicht dynamisch gebunden werden müssen.
    Im Großen und Ganzen sollte es als Programmier eher deine Aufgabe sein, die Algorithmen zu verbessern, die Codegenerierung ist bei den HotSpot VMs schon ziemlich gut.


Anmelden zum Antworten