Seitendatum: 28.03.08

Warning: file(/home/hanno/www/log/php/counter.log): failed to open stream: No such file or directory in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 27

Warning: file(/home/hanno/www/log/php/counter_max.log): failed to open stream: No such file or directory in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 28

Warning: file(/home/hanno/www/log/php/ips_counter.log): failed to open stream: No such file or directory in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 29

Warning: file(/home/hanno/www/log/php/ips_user_online.log): failed to open stream: No such file or directory in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 30

Warning: fopen(/home/hanno/www/log/php/counter_max.log): failed to open stream: No such file or directory in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 54

Warning: fwrite() expects parameter 1 to be resource, boolean given in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 55

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 56

Warning: file(/home/hanno/www/log/php/counter_max.log): failed to open stream: No such file or directory in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 57

Warning: fopen(/home/hanno/www/log/php/ips_user_online.log): failed to open stream: No such file or directory in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 60

Warning: fwrite() expects parameter 1 to be resource, boolean given in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 61

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 62

Warning: fopen(/home/hanno/www/log/php/counter.log): failed to open stream: No such file or directory in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 82

Warning: fwrite() expects parameter 1 to be resource, boolean given in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 83

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 84

Warning: fopen(/home/hanno/www/log/php/ips_counter.log): failed to open stream: No such file or directory in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 87

Warning: fwrite() expects parameter 1 to be resource, boolean given in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 88

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 89
Es ist 1 Nutzer online.
Seit dem 30.06.05 waren 1 Besucher auf dieser Seite.

Warning: date() expects parameter 2 to be long, string given in /home/hanno/www/pebbles.schattenlauf.de/include/besucherzaehler.php on line 94
Größte Zahl gleichzeitiger Besucher war am mit Besuchern.

Hauptmenü

HauptseiteHier finden sich für alle Projekte Kurzinfos und Links.

Der Stil dieser Seite läßt sich bei modernen Browsern wie Firefox übrigens im Menü Ansicht, Webseiten-Stil einstellen. Unbedingt ausprobieren!
NEO TastaturlayoutNeues, ergonomisches Tastatur Layout für Schnell- und Vielschreiber Java Projekte Hier findet sich das Spiel JavaSails! und zum Beispiel ein Benchmark Java gegen C Webdesign Was ist Webdesign? Was ist das Web? Worauf sollte ich achten, wenn ich Informationen ins Netz stelle? Eine kurze Einführung in den Geist des Web. SFD und ShadowrunDas SFD ist ein freies Cyberpunk Quellenbuch, das eine nützliche und liebevolle Ergänzung für das Fantasy Rollenspiel Shadowrun und andere darstellt. Mehr als 600 Seiten Din-A4 mit über 300 Illustrationen frei herunterladbar. RollenspielMaterial und Präsentationsseiten mit dem Thema Fantasy Rollenspiel. ImpressumHier finden sich die rechtlichen Voraussetzungen dieser Präsenz E-Mail
Um den Autor dieser Seite zu kontaktieren: E-Mail an Hanno Behrens schreiben.
Bild: Hanno Behrens

Interaktives Wiki

Wiki Start/BlogDiese Wiki-Seiten umfassen alle Themen dieser Präsenz und wurden teilweise von ihren Besuchern geschrieben. Hier findet sich auch der News-Blog. Wiki InhaltHier findet man alle im Wiki enthaltenen Seiten. Der übersichtlichere Zugang geht über die Startseite, aber man kann im Wiki auch nach Seiten suchen. AnmeldenWer bereits im Wiki eingetragener Benutzer ist, kann sich hier sofort anmelden und das Wiki betreten.

Java Projektseite

Segel, Schiffe und Kanonen - JavaSails!

Die Zeiten der Schiffe aus Holz und der Männer aus Eisen brechen erneut an! Wer schon einmal sehnsüchtig in den Büchern von C.S. Forrester den Abenteuern von Kapitän Hornblower nachgespürt hat, wen die Geschichten von Patrick O'Brian über den Kapitän Aubrey aus Master and Commander in den Bann geschlagen haben oder überhaupt ein Herz für die Zeit der schönen Schiffe besitzt, der soll hier auf seine Kosten kommen.

In Entstehung ist ein plattformübergreifendes Multiplayer Webspiel in Java, wie es schon in den BSD-Games mit sail angedeutet wurde, wie es sich vielleicht die Entwickler des Spieles Wooden Ships and Iron Men von Avalon Games (1975) erträumt hätten. Feine Abstufungen der Segeleigenschaften einzelner Schiffe, möglichst originalgetreue Simulation der Seetüchtigkeit und der Bewaffnung, Winddrift, Kurse zum Wind, Schifftyp und Ausstattung, Wettereinflüsse und ihre resultierenden, unterschiedlichen Geschwindigkeiten, Zufallsereignisse sind geplant.

Dabei soll die Grafik bewußt einfach gehalten werden, eine Aufsicht soll reichen, mehr Wert wird gelegt auf die Simulation der Fahreigenschaften, der zum Teil komplexen Logistik auf den Schiffen sowie dem Miteinander und Gegeneinander auf dem Schlachtfeld der See und später einer Erweiterung zum Handels- oder Eroberungsspiel.

Doch erst einmal lernt das Spiel kriechen, bevor es laufen kann. Wer die Entwicklung verfolgen will, ist auf dem entsprechenden Blog eingeladen.

Java vs C Benchmark

Während der Überprüfung von Performanceunterschieden zwischen "C" und Java fiel dieses kurze Programm an. Es sollte ursprünglich zeigen, wie viel Geschwindigkeitsverlust ein Javaprogramm gegenüber einem Programm in "C" zu verzeichnen hat. Überraschender Weise ergab sich jedoch ein Sieg für Java mit 5% Geschwindigkeitsvorteil, selbst nachdem der C-Code auf Pentium-4 Code optimiert wurde. Schleifenoptimierungen (Option -O3 u.ä.) dürfen bei GCC natürlich nicht aktiviert werden, da der C-Compiler die ansonsten leeren Schleifen einfach wegoptimiert, was nicht im Sinne des Tests ist.

Nähere Überprüfungen des absolut überraschenden Ergebnisses ergaben, dass Java meinen Pentium 4 HT Prozessor komplett ausnutzt, "C" jedoch erst einmal nur auf einem einzigen der beiden Rechenwerken läuft. Der Geschwindigkeitsvorteil des Hyperthreading quasi 2-Prozessorsystems auf einem P4HT bringt etwa 20% Geschwindigkeitsvorteil. Auf einem Einzelprozessorsystem ist Java rund 15% langsamer als reines "C". Aus der Differenz dieser beiden Werte ergab sich das überraschende Siegerergebnis für Java. Wohlgemerkt wurde der "C" Code bereits auf Pentium-4 optimiert, vorher sah es für "C" noch schlechter aus. In der Regel sind Programme nicht auf Pentium-4 optimiert.

Folgerung: je komplexer und hochwertiger das System ist, auf dem solche Berechnungen laufen, desto überlegener wird sich Java gegenüber C behaupten können. Entsprechende Folgerungen könnte man wahrscheinlich auf Clustersysteme übertragen, wozu ich allerdings weitere, ausgefeiltere Tests empfehlen würde.

Die Testumgebung war ein SuSE Linux 9.1 mit Pentium 4 HT-System. Die im Archiv enthaltenen Binarys sind die verschieden optimierten Versionen des Benchmarks unter Linux. Aufruf mit ./bench für "C", java Bench für Java. Gezählt werden die Millisekunden.

Ein kastriertes Java mit abgeschaltetem JIT-Compiler fiel in der Leistung auf unterschiedlichen Systemen auf etwa 20-25% der Leistung der C-Version zurück, was einen Geschwindigkeitsnachteil von Faktor 4-5 bedeutet. Mit aktiviertem JIT pendelte der Wert zwischen 85-105%. Das Abschalten des JIT betraf die Integerberechnungen deutlich stärker als die Fließkommaoperationen, was ein zu erwartendes Ergebnis war.

Getestet wurde auf GCC 3.3.3 und Java 1.4.2_03 von Sun Microsystems.

C64-Emulator

Dieses niedliche, kleine Applet emuliert einen C64, allerdings mit stark eingeschränktem Betrieb. Ich fand den Emulator zwischen einem Haufen anderer Emulatoren und konnte den Autor nicht ausfindig machen. Naja. Der Java-Source lag bei und ich stellte schnell fest, dass Tastatureingaben nicht funktionierten. Nach Beseitigung einiger rudimentärer Bugs und Implementation von funktionierenden Tastatureingaben lief es dann doch überraschenderweise. Inzwischen hat sich schon wieder etwas geändert, aber diesen Fehler soll jetzt ein anderer suchen.

Email: Hanno Behrens

Seitenindex

JavaSails! Onlinespiel Java vs C Benchmark C64-EmulatorKleiner Java C64 Emulator, leider nicht fehlerfrei. Rollenspiel Wetterkalkulator 1.1Für Rollenspiel benutzbare Wettervorhersage für Rollenspiele (Java 1.4)

Datei Download

TGZ: Java vs C-Bench 1_0.tgz JAR: Wetterapplet(HTML-Aufruf Seiten enthalten)

Externe Links

Bücher und Informationen

Wikipedia: Was ist Java? Wikipedia: Was ist "C"? Wikipedia: Was ist der gcc? Wikipedia: Was ist die Java VM? Artikel: Die Java Falle Warum es wichtig ist, sich von proprietärer Software zu lösen. Wikipedia: Was ist freie Software? Warum machen sich so viele Menschen die Mühe und geben ihre Programme kostenlos ab, wo sie doch statt dessen jede Menge Geld damit verdienen könnten? Oder verdienen sie damit trotzdem Geld? Oder gerade deswegen? Oder ist Geld am Ende völlig bedeutungslos bei dieser Frage? Buch: Java ist auch eine Insel Dieses Onlinebuch von Christian Ullenboom auf Deutsch vermittelt leicht verständlich den Umgang mit Java. Buch: Thinking in Java von Bruce Eckel Buch: Thinking in Patterns with Java von Bruce Eckel Optimiert programmieren unter Java Alles zum Thema, optimieren nach Geschwindigkeit, Größe oder Wartbarkeit, ebenfalls findet sich hier der Linpack Benchmark, der ein wesentlich genaueres Ergebnis erzeugt als die hier vorgestellte Routine. Java vs C++ Eine nicht ganz neutral geschriebene Seite, die abar am Ende auf Fakten kommt und damit sehr ernst zu nehmen ist. Wie immer gilt bei Optimierungen, dass es drauf ankommt... Does Java need Checked Exceptions? Das Fehlerabfangen in Javaprogrammen wird häufig von Programmierern aus Bequemlichkeit ignoriert. Dafür gibt es technische und menschliche Gründe. Doch hier findet sich eine überraschend einfache Lösung für das Problem. Tutorial: Das Java Tutorial von Sun Das Standard-Tutorial von Sun ist für die meisten Java-Anfänger und auch für die Fortgeschrittenen ein immer wieder genommenes Referenzwerk, falls es zu Problemen kommt oder Änderungen im Sprachgebrauch stattgefunden haben. Buch: Einführung in Java Ein weiteres freies Online-Buch zum Thema Java. Viele weitere Java Ressourcen Wem die Ressourcen bisher noch nicht genügen, findet hier mit Sicherheit alles zum Thema Java, was bislang ungenannt geblieben ist.

Programme

Java von Sun Microsystems Die Firma Sun ist der Erfinder der Sprache Java. In jüngerer Zeit gibt es von Sun unabhängige Bestrebungen, sowohl Compiler als auch Laufzeitumgebung von der Firma zu lösen und freie Alternativen zu erschaffen. Die Sun-Implementation gilt als umfangreichste und am weitesten entwickelte. GNU: Freier Java Compiler GCJ Der GNU-Javacompiler erzeugt auf Wunsch Java-Bytecode oder sogar direkt ausführbaren Maschinencode - je nach Bedarf. GNU: Freie Java Laufzeitumgebung Kaffe Um ein Javaprogramm laufen lassen zu können, braucht es eine virtuelle Maschine, die außerdem eine beachtliche Anzahl Bibliotheksfunktionen zur Verfügung stellt.

Foren

Java User Group Deutschland Hilfestellungen und ein gut frequentiertes Forum in Deutsch.