SourceForge.net 

benchmarks

performance

Jake2 zeigt, dass Java 3D Spiele ohne allzu große Hardwareanforderungen eine ansprechende Performance erreichen können.

Die folgende Tabelle zeigt die erreichbaren Frameraten von Jake2 und soll nur einen ersten Eindruck vermitteln.

Die hier gezeigten Werte stellen keinen absoluten Vergleich Java vs. C dar. Man kann aber bei einer 1:1 Portierung von C nach Java mindestens 60% der Performance erwarten. Bei objektorientierten C++ Anwendungen würde sich das Verhältnis weiter zugunsten von Java verschieben.

Die Version 0.9.2 mit dem neuen “fastjogl” OpenGL Renderer zeigt eine eindrucksvolle Steigerung. Der neue Renderer reduziert hauptsächlich die Anzahl der Java Native Interface Aufrufe. JNI Aufrufe erzeugen einen nennenswerten Overhead und waren bis jetzt der Hauptgrund für den Abstand zum Original. Mit Jake2 kann man inzwischen bis zu 85% der Framerate des Originals erreichen, abhängig vom Verhältnis von CPU- und Grafikleistung. Mit Version 0.9.3 wird die Lücke zum Original schon ziemlich eng, hauptsächlich durch die Reduzierung von Speicherallokierungen in performancekritischen Routinen. Es ist allerdings noch anzumerken, dass die Unterstützung von Fullscreen Modes in Java noch nicht optimal ist.

Die neue Version 0.9.4 bringt nochmals einen ordentlichen Performancegewinn. Einige Optimierungen (Datenstrukturen, Speicherallokierung etc.) haben sich doch ziemlich stark auf die Framerate ausgewirkt.

System

Original
C Code

Jake2-0.9.1
JRE1.5
jogl

Jake2-0.9.2
JRE1.5
fastjogl

Jake2-0.9.3
JRE1.5
fastjogl

Jake2-0.9.4
JRE1.5
fastjogl/lwjgl

AMD Athlon XP 2400
Geforce4 MX
Windows 2000
800x600 window

245 fps

172 fps

213 fps

241 fps

260/250 fps

AMD Athlon XP 2400
Geforce4 MX
Windows 2000
800x600 fullscreen

315 fps

not supported

225 fps

235 fps

250/282 fps

AMD Athlon XP 2400
Geforce4 MX
Linux
800x600 window

262 fps

141 fps

212 fps

215 fps

228/240 fps

AMD K6-2 350
Geforce2 MX
Windows 2000
800x600 window

56 fps

21 fps

31 fps