The Structure and Performance of Efficient Interpreters (Introduces the fundamentals of virtual machine design and explains the importance of direct threading)
Virtual Machine Showdown: Stack Versus Registers (Details the benefits of register machines, and the importance of copy propagation)
The Implementation of Lua 5.0 (Outlines the implementation of a real-world register-based bytecode engine, with a sliding register window calling convention)
Mimo tego, że zaimplementowano na razie tylko część kodu, to już tym momencie SquirrelFish jest dużo szybszy niż poprzedni silnik WebKita. Oto dowód z bloga Surfin' Safari.
Jednak nie wierząc zbytnio programistom:) postanowiłem sam przetestować wydajność nowego silnika JavaScript i przy okazji porównać go z tym jaki pracuje w najnowszym Firefox 3.0 RC2. Wyniki moich prac można znaleźć w udostępnionym w serwisie Google Dokumenty arkuszu, a poniżej prezentuje wersję okrojoną (średnią).
Testy/Przeglądarki ACID3 [%] Dojo 1.0.2 [ms] JQuery 1.2.3 [ms] MooTools 1.2beta2 [ms] Prototype 1.6.0.2 [ms] JavaScript Performance Test [ms] SunSpider Test [ms] CSS3 Info selectors-test [%] | Firefox 71.38 208.13 407.38 195.38 335 365.75 7627.58 87.79 | Safari 91.67 54.5 136.5 266 329.5 393.5 7035.67 100 |
[ms] - im mniej tym lepiej
[%] - im więcej tym lepiej
Wynika z niej jasno, że WebKit jest szybszy niż którykolwiek obecnie najnowszy silnik. Na koniec jeszcze kilka przydatnych linków:
SunSpider: Safari 3.1 vs SquirrelFish
SunSpider: Safari 3.0 vs SquirrelFish
SquirrelFish vs Firefox interpreter
Brak komentarzy:
Prześlij komentarz