communityWir suchen ständig neue Tutorials und Artikel! Habt ihr selbst schonmal einen Artikel verfasst und seid bereit dieses Wissen mit der Community zu teilen? Oder würdet ihr gerne einmal über ein Thema schreiben das euch besonders auf dem Herzen liegt? Dann habt ihr nun die Gelegenheit eure Arbeit zu veröffentlichen und den Ruhm dafür zu ernten. Schreibt uns einfach eine Nachricht mit dem Betreff „Community Articles“ und helft mit das Angebot an guten Artikeln zu vergrößern. Als Autor werdet ihr für den internen Bereich freigeschaltet und könnt dort eurer literarischen Ader freien Lauf lassen.

Werbung für Verbesserungen der Java Performanz PDF Drucken E-Mail
Samstag, den 29. März 2008 um 20:09 Uhr

Java-LogoAuf dem TheServerSide Java Symposium ließen es sich die Beteiligten nicht nehmen, wieder ordentlich die Werbetrommel für die Java Technologie zu rühren. Java ist nicht mehr die lahme Ente der alten Tage und die Performanz erreicht oder übertrifft mittlerweile die Leistung von Anwendungen, die in C geschrieben sind, betonten IT-Experten während einer Präsentation am Donnerstag in Las Vegas.

Die Java Virtuelle Maschine (JVM) und die automatische Speicherbereinigung (Garbage Collection) wurden beispielsweise verbessert und Java selbst hat einen langen Weg hinter sich gebracht argumentierten die Technologen. Frühe virtuelle Maschinen waren in der Tat langsam, sagte Brian Goetz, Ingenieur bei Sun. Aber das hat sich geändert.

"Die Realität ist, Java ist heutzutage ziemlich schnell", sagte Goetz. Die Performanz von Java liegt heute nahe an der von C, allerdings ist der Speicherbedarf von Java immer noch hoch, sagte er.

Er und Cliff Click, JVM Chefarchitekt bei Azul Systems, versuchten zahlreiche Mythen zu widerlegen, z.B. das die Allokation von Objekten in Java langsam sei. "Das war eines der Dinge, das lange Zeit absolut richtig war", sagte Goetz. Die automatische Speicherbereinigung war ebenfalls langsam, weil sie zunächst die Programme stoppen musste, den Heap durchsuchen, um dann nach Objekten Ausschau zu halten die bereinigt werden können. "Es ist nicht überraschend, das die Leute früher der Ansicht waren das Java's Speicherverwaltung sehr aufwendig war", sagte er.

Ein anderer Mythos ist das die Synchronisation langsam ist. Auch hier wurden viele Veränderungen durchgeführt, beispielsweise wurden bessere Algorithmen eingesetzt, sagte Goetz. Er verwies darüberhinaus darauf das der Mythos, Java Programme würden 20 Prozent ihrer Zeit mit der Speicherbereinigung verbringen, auf ein Papier aus dem Jahr 1995 zurückgeht.

Ein Teilnehmer äußerte sich zur Performanz von Java. "Wir betreiben eine große J2EE Applikation und wir erfüllen alle Ansprüche, die von unseren Kunden gestellt werden", sagte Jerald Nielson. Bei dem Programm handelt es sich um eine Software für Sozialbehörden des Staates Kalifornien, sagte er.

Java ist aufgrund von sukzessiven Verbesserungen besser geworden, sagte Click nach der Sitzung. "Die automatische Speicherbereinigung wurde definitiv verbessert, die JIT-Compiler (Just in Time Compiler) wurden verbessert, die Laufzeit wurde ebenfalls verbessert, eine ganze Reihe von Dingen wurde verbessert", sagte Click.

Java genießt auch einen 10-prozentigen Leistungsvorsprung gegenüber anderen interpretierten Sprachen, wie JavaScript, Perl und Python. "Die Skriptsprachen werden nicht von einem JIT-Compiler übersetzt", sagte er.

Skriptsprachen sind ideal für kleine Programme, aber Java ist für größere Programme konzipiert. "Mit steigender Programmgröße, wirkt sich das Fehlen von strenger Typisierung negativ aus und es wird nahezu unmöglich große Programme zu verwalten. Deshalb gibt es auch keine in Perl geschriebenen Programme, die Millionen Zeilen Code enthalten.", sagte er. Es gibt viele Programme mit über einer Millionen Zeilen Code, die in Java geschrieben sind, sagte Click. Eine strenge Typisierung dient in der Informatik dazu, dass die Objekte der Programmiersprachen, wie z.B. Variablen, Funktionen oder Objekte im Sinne der objektorientierten Programmierung korrekt verwendet werden. Das Hauptziel ist die Vermeidung von Laufzeitfehlern.

Während des Symposiums am Donnerstag, sprach der Anwendungsentwickler von ThoughtWorks, Neal Ford, über domainspezifische Sprachen (domain-specific languages) als einen Weg, die Programmierung zu vereinfachen. Eine DSL ist der nächste Schritt nach einem Framework, wie Spring, sagte er. DSL erlaubt es Entwicklern Ideen in einer einfachen und präzisen Art und Weise umzusetzen, während Objekte, Aspekte und Generics zu Bauklötzen der DSL werden, führte er weiter aus.

"Sie bauen ein Framework wie Spring um Aspekte zu nutzen, aber auch soetwas wird mit der Zeit immer komplizierter", sagte Ford.

Sprachsammlungen, wie Microsofts Software Factories oder JetBrains MPS (Meta-Programming System), repräsentieren externe DSLs, sagte er.

Das die Versprechungen und Lobpreisungen bei den Anwesenden des Symposiums ihre Wirkung nicht verfehlt haben, muss nicht angezweifelt werden. Jetzt muss nur noch der Rest überzeugt werden, was angesichts der angesprochenen Vorteile der Java Technologie keine allzu große Herausforderung darstellen sollte - oder?