JavaScript: Rennt nicht immer
Für einen Kunden habe ich erstmalig im größeren Stil mit einer an sich netten kleinen JavaScript-Bibliothek gearbeitet: mktree. Überhaupt sind die meisten der Bibliotheken von Matt Kruses JavaScript Toolbox sehr brauchbar: Sauber programmiert, leicht einsetzbar, kein Bloat.
Im konkreten Fall ging es um die baumartige Darstellung von Kategoriestrukturen. Bei den Tests lief alles wirklich prima, aber kaum war die Funktion freigeschaltet, meldete sich eine Anwenderin: Bei ihr bräuchte die überarbeitete Liste nun zwei Minuten zur Anzeige.
Einige Messungen später hatte sich herausgestellt: Der Server war schon nach zwei Sekunden fertig, aber der Browser, besser gesagt: JavaScript, hatte dann doch einiges zu tun: Mit dem Rendering von 1.600 Kategorien (jawohl!).
Es blieb für’s erste nichts anderes übrig, als derart große Kategoriesammlungen als starre, nicht auf- und zuklappbare Baumstruktur darzustellen. Funktioniert ja genauso gut, sieht nur nicht ganz so elegant aus. Dennoch schade, wo ich doch gerade erst mitgeteilt bekam, dass JavaScript so sauschnell sei … ;-)
Tags: browser, javascript
31. März 2012 um 00:14
JS ist recht schnell, leider kommt es hier auf den Interpretierenden Browser und seine JS-Engine an. Google hat hier mit http://code.google.com/p/v8/ (V8-JS-Engine) einiges optimiert in ihrem Crome Browser (Nutze ich nicht aber ein bekannter)
Zum vergleich Opera 11.62 Build: 1347 auf einem Win7 x64 mit AMDx6:
Score: 4231
Richards: 3809
DeltaBlue: 3022
Crypto: 5230
RayTrace: 5432
EarleyBoyer: 5719
RegExp: 1420
Splay: 8165
NavierStokes: 4735
Der IE 9.0.5 oder 9.0.8 x64 ka welche Version nun richtig ist komische Angabe von Winzigweich:
Score: 546
Richards: 299
DeltaBlue: 303
Crypto: 444
RayTrace: 542
EarleyBoyer: 944
RegExp: 1374
Splay: 1075
NavierStokes: 259
Und Crome ist noch mal ne ganze Nummer Schneller als Opera, von daher kann man schon komplexe und viele Elemente in JS nutzen, man sollte es aber mit einer Browser weiche versehen, so das nich zufällig der IE futter bekommt welches ihm Magengeschwüre verursacht XD
Benutzer JS-Benchmark von der V8 Engine: http://v8.googlecode.com/svn/data/benchmarks/v7/run.html