Warum hat Java im Vergleich zu anderen interpretierten Sprachen wie Python eine viel bessere Leistung? Ich weiß, dass das wahrscheinlich etwas damit zu tun hat, dass es im Voraus kompiliert wurde, aber was ist mit Nebenläufigkeit?
Wie kann die JVM mit konkurrierenden Programmen so viel besser arbeiten, während interpretierte Sprachen sich mit Dingen wie der globalen Interpretersperrung usw. befassen müssen, die die Dinge wirklich verlangsamen?
Das ist eine wirklich interessante Frage, aber ich bin mir nicht sicher, ob es eine einfache Antwort gibt. JVMs verwenden heutzutage eine Reihe von sehr aggressiven Optimierungen, um die Leistung zu verbessern. Hier sind ein paar:
Es gibt viele, viele weitere Optimierungen, die mir wahrscheinlich nicht bewusst sind, aber ich hoffe, dass dies Ihnen hilft, auf eine Antwort zu kommen!
Java-Code hat während der Kompilierung fast keine Optimierung.
Der Laufzeit-JIT übernimmt den Großteil der Kompilierung.
Was bei Java anders sein kann, ist, dass es relativ schlecht mit minimalen Nebenwirkungen ist. Dies macht den Code einfacher zu optimieren.
Während interpretierte Sprachen sich mit Dingen wie der globalen Interpretersperrung usw. befassen müssen, die Dinge wirklich verlangsamen?
Dies ist ein Implementierungsproblem. Java wurde von Anfang an mit Multi-Threading-Unterstützung entwickelt. Ich vermute, dass Python für Scripting und schnelle Entwicklungszyklen entwickelt wurde, was viel besser ist.
Tags und Links java performance jvm interpreter