SquirrelFish Extreme – wojnom engine’ów JavaScriptu nie ma końca
Na początku czerwca 2008 roku świat obiegła wieść o nowym, ultraszybkim engine'ie JavaScriptu, stworzonym przez deweloperów Apple'a z zespołu pracującego nad WebKitem. Otrzymał on nazwę SquirrelFish i swoją wydajnością deklasował konkurencję ze stajni Mozilli i Opery, nie mówiąc już o przeglądarce z Redmond. Jednak w drugiej połowie sierpnia br. poznaliśmy engine TraceMonkey dla Firefoksa 3.1, a później na początku września br. Google niespodziewanie przedstawiło swoją przeglądarkę Chrome z engine'em JavaScriptu V8, szybszym niż wszystkie dotychczasowe rozwiązania. I tak SquirrelFish stracił pierwszeństwo – do dzisiaj.
Deweloperzy Apple'a poinformowali właśnie, że udało im się ukończyć prace nad nową generacją swojego engine'u JavaScriptu. SquirrelFish Extreme w pierwszych testach benchmarka SunSpider po prostu zmiażdżył konkurencję – okazało się, że jest on o 36% szybszy od V8 i o 55% szybszy od TraceMonkey.

Porównanie wydajności engine'ów JavaScriptu w teście SunSpider – w liczbie ukończonych cykli na minutę dłuższe paski są lepsze (źródło: satine.org).
- Jak zdołano osiągnąć tak niesamowity wynik?
Według twórców stało się to możliwe dzięki innowacyjnemu połączeniu nowych i starych sztuczek inżynierii programowania. SquirrelFish Extreme wykorzystuje łącznie cztery metody, których nie było w oryginalnym engine'ie twórców WebKita. Są to:
- optymalizacja kodu bajtowego. Dzięki badaniu, które z operacji JavaScriptu wykonują się najszybciej w danym momencie, można znacznie przyspieszyć działanie całego programu. W dodatku poprawiono zestaw instrukcji kodu bajtowego, dodano instrukcje „combo”, szybszą obsługę stałych i trochę wyspecjalizowanych kodów operacyjnych dla typowych przykładów ogólnych operacji;
- polimorficzne liniowe cache'owanie. Ta stara technika wywodzi się z języka Self i pozwala wykryć, kiedy obiekty mają tę samą wewnętrzną strukturę (czyli te same własności w tym samym porządku), i powiązać je z identyfikatorem struktury. Kiedy dana własność jest wywołana po raz pierwszy, engine zapisuje identyfikator w tabeli hashów i miejsce, w którym dana własność była znaleziona. Następnym razem, jeśli dany fragment kodu będzie działał na tych samych obiektach, jego identyfikator zostanie dopasowany do już istniejącego, dzięki czemu nie trzeba będzie ponownie go wywoływać;
- kontekstowe wątki kompilatora JIT (Just-In-Time). Pozwalają one na konwersję kodu bajtowego na kod natywny, jeden kod operacyjny po drugim. Złożone kody operacyjne są przekładane na wywołania funkcji w bibliotece uruchomieniowej języka. Ma to dwie zalety: po pierwsze, kontrola przepływu między kodami operacyjnymi jest bezpośrednio przedstawiona procesorowi jako prosty ciąg instrukcji, po drugie zaś, wiele rozgałęzień, które formalnie zawierały się między kodami operacyjnymi, znajduje się teraz w jednej linii, dzięki czemu stają się one bardziej przewidywalne dla mechanizmu zapowiedzi rozgałęzień procesora (predyktora);
- wyrażenia regularne w JIT. Po stworzeniu JIT dla podstawowej infrastruktury JavaScriptu autorom udało się stworzyć JIT dla wyrażeń regularnych – w efekcie szybkość ich przetwarzania wzrosła pięciokrotnie. Według twórców WREC, czyli WebKit Regular Expression Compiler, radzi sobie teraz z wyrażeniami regularnymi szybciej, niż ma to miejsce w wypadku takich języków, jak Python, Perl czy Ruby.
- Możliwości nowego engine'u JavaScriptu od Apple'a można sprawdzić samemu, jeśli się pobierze kod źródłowy bądź skompilowaną wersję ze strony nightly.webkit.org/.
źródła: WebKit.org/blog/, Satine.org
Polecamy
Reklama
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Źle się dzieje z Chrome, ze stabilnością coraz gorzej. Gdzie się podziała słynna izolacja procesów?
26
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
Zaktualizuj PHP do wersji 5.4, zyskasz za darmo nawet o kilkudziesiąt procent wyższą wydajność aplikacji
6
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
Ebhossmith Witam jestem Pan Ebhossmith, Dobre, uzasadnione i wiarygodne pożyczki...
DerDevil Mnie zatkało. Taka kwota i to w tak krótkim czasie. A najlepsze jest w tym...
sLn Tytuł rodem z onetu lub faktu...
1 primo - pobieranie nie jest...
ananas Pani Joanna powinna częściej czytać Matta Cuttsa i zaglądać na forum...
hipokryci Warto zauważyć, że przeważająca część instytucji publicznych również...
kajoj Ja już w takim razie nie rozumiem..co jest karane a co nie...udostępnianie...
Dawid11111 dokładnie ponieważ polskie prawo mówi jasno: można pobierać dla własnego...
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |









#1 bimas 2008-09-20 15:21:43 0
None
#2 dAREuS® 2008-09-20 15:43:47 0
None
#3 dbaj 2008-09-20 22:14:56 0
None
#4 pablo 2008-09-20 23:19:03 0
None
#5 eimi® 2008-09-21 12:41:28 0
None