von Werner » Mi 21 Aug, 2002 10:16
Zur SUN VM, die ist sehrwohl performant, das einzige was die Performance bremst ist dass sie nicht beim System Startup geladen wird so wie die M$ VM. Bezüglich Download Größe die M$ VM hat 5-6 MB die Sun JRE 8 MB. Die Library der Sun VM ist allerdings um den Faktor 5 Umfangreicher.
Subjektiv rein von der Ausführungsgeschwindigkeit dürfte die Sun VM um den Faktor 5-10 schneller als die M$ VM sein (die defakto seit 1998 nicht mehr weiterentwickelt wird. Der Grund dafür ist Hotspot eine Optimierungsengine die dynamisch optimierungen zur Laufzeit durchführt. Das merkt man bei einem Typischen Java Programm oft erst nach 1-2 Minuten Laufzeit wenn das Proggie auf einmal 2-3x so schnell ist. Meiner Erfahrung nach gilt dies nur für den ersten Start weil Hotspot die Optimierungsparameter Cached.
Das einzige was bei der Sun VM halt ist ist dass 1-2 Sekunden Startzeit beim ersten Aufruf eines Applets dazukommen weil die VM mal hochfahren muß (kann man aber glaub ich sogar auf preloading einstellen).
Btw. ich verwende Java in unterschiedlichen Versionen seti 1996 und mittlerweile ausschließlich Sun VMs neueren Datums.
In der Regel kann man sagen (laut meiner Erfahrung) dass ein Java Programm etwa 50-30% der Leistung eines vergleichbaren C++ Programms erreicht, dies gilt für die SunVM die aktuellen Zahlen der Microsoft VM kenne ich nicht aber es dürfte etwa bei 4-5% liegen.
Hotspot ist auch einer der Gründe warum sich Java grad im Serverbereich durchgesetzt hat, die Optimierungen bauen tw. auf optimaler Nutzung des verfügbaren Speichers auf und Serverprogramm laufen im Gegensatz zu anderen Programmen sehr lange damit kann Echtzeitoptimierung besser greifen und viel Speicher ist nicht wirklich ein Problem am Server. Dafür erhält man extreme Stabilität. Ich kenne Java Serverprogramme mit Uptimes von Monaten!
Sorry für den kleinen Exkurs in Java, aber bei den Anwendern ist diese Sprache sosehr mit falschen Infos (teilweise durch die lahme M$ VM) belastet dass ich einfach mal meinen Senf dazugeben musste. Eines noch, Java ist nicht langsam. Ich hab neulich erst ein Bildverarbeitungsprogramm ala ACDSee in Java programmiert das auf JDK1.4 aufsetzt die einzige Rückmeldung die ich nicht bekam war dass es langsam gewesen wäre.