Carakan besitzt einige Neuerungen, die wirklich entscheidend bezüglich Geschwindigkeit sind:
- CPU-Register orientierter Bytecode
- Generierung von nativem Code
- Automatische Objektklassifizerung
Früher hat Operas JavaScript-Engine eine stackorientiere Architektur für den Bytecode verwandt, was durch vieles Schieben (Push) auf und Hertunterholen (Pop) vom Stack Zeit beansprucht hat.
Jetzt werden die Register fester Größe verwandt. Kopier- und Verschiebevorgange, die früher auf Stacks oft notwendig und zeitfressend waren, können so vermieden werden.
Die Generierung von nativem Code für JavaScript (JS) ist eine quasi Vorabkompilierung, eine fortwährende Interpretation des JS ist nicht mehr notwendig. Zudem wird dadurch ein Code erzeugt, der auf die jeweilige CPU optimiert ist, die auf dem Rechner läuft. Dadurch können Befehle schneller abgearbeitet werden. Auch das Prüfen von Regular Expressions (RegEx) kann dadurch erheblich in Bezug auf Geschwindigkeit verbessert werden; so ist dann das Matchen eines RegEx erheblich schneller als ein index auf denselben Substring.
Die Automatische Objektklassifizierung soll bei dynamischen Objekten die Struktur analysieren und damit eine bessere Speichereffizienz bei komplexen Klassen ermöglichen. Gleiche Prototypen und Eigenschaften von verscheidenen Objekten könne so einer einzigen Klasse zugewiesen werden, auf die dann alle wieder zugreifen, was Speicher spart.
Die neue Engine soll in jedem Fall zwischen 5–50-mal schneller sein.

Kommentar für Blogeintrag
TrackBack-URL:
http://gwendragon.de/blog/Web/Browser/Opera/schnelleres-javascript-angekuendigt.html/trackback↑Artikel