Die Version 0.9.9 von JRuby wurde heute freigegeben. Damit nähert sich JRuby unaufhaltsam dem seit 5 Jahren wartenden Meilenstein 1.0. Laut Entwickler hat sich die Geschwindkeit teilweise von der 0.9.8 um 40% gesteigert. Es werden (wie schon in der 0.9.8) bis zu 98% aller Testcases von Rails erfolgreich absolviert und ab heute läuft sogar Mephisto auf einer JRuby Rails Platform (also die gleiche Blogsoftware die wir hier auch verwenden). Und nun kommt der Knüller! Wie ich erst Gestern durch Zufall in einem Gespräch mit Murphy erfahren habe, verwendet JRuby seit kurzem eine neue RegExp Maschine die eine höhere Kompatibilität zu der MRI Version besitzt. Bis dato wurde die Java Engine verwendet, welche sich teilweise stark von der Ruby Version unterscheidet. Diese Änderung führt dazu, dass Murphys CodeRay ohne schwerwiegende Probleme mit JRuby zusammen läuft. Die gesamte Scanner Testsuite wird fehlerfrei durchgeführt (bei einigen funktionalen Tests gibt es jedoch noch Probleme) mit dem folgenden Ergebnis:
CodeRay Testsuite:
ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.9.1]
Finished in 1.105683 seconds.ruby 1.8.5 (2007-04-23 rev 3539) [i386-jruby0.9.9]
Finished in 39.123 seconds.
Wie wir sehen, hat JRuby trotz baldiger 1.0 noch mehr als nur vertretbare Geschwindigkeitsprobleme. Scheinbar brauch StringScanner noch ein wenig Liebe. Die String Klasse selber wurde ja schon kräftig mit den Java Equivalenzen optimiert. Um das Problem noch mal zu verdeutlichen hier die CodeRay Benchmarks welche den Durchsatz der analysierten Tokens messen:
CodeRay Benchmark:ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.9.1]
Total: 2.708862
369.16 KB/sec (1000.0 KB)
90.15 KTok/secruby 1.8.5 (2007-04-23 rev 3539) [i386-jruby0.9.9]
Total: 12925.966000
0.08 KB/sec (1000.0 KB)
0.00 KTok/sec
Und NEIN. Ihr habt euch nicht verlesen. Der Benchmark hat unter JRuby geschlagene 3 Stunden gebraucht. Der Interpreter scheint massive Probleme mit der permanenten Verarbeitung von Zeichenketten zu haben. Ich hoffe ich kann das Problem in den nächsten Tagen ein wenig eingrenzen um es dann mal mit den Entwicklern durchzusprechen.
Änderung in Version 0.9.9:Es wurden weiterhin noch zwei neue Entwickler (Marcin MielżyÅ„ski and Bill Dortch) in das JRuby Team aufgenommen. Herzlichen Glückwunsch an die Beiden.
Kommentar schreiben
Kommentare
Danke für diese Tests, bovi! Das ist sehr hilfreich, vielleicht auch für die JRuby-Leute.