JägerMonkey: myśliwska małpa przyśpieszy Firefoksa?
Trudno temu zaprzeczyć – na dzisiaj Mozilla wyścig engine'ów skryptowych przegrała. Firefox 3.6 jest najpowolniejszą spośród nowoczesnych przeglądarek – ustępuje Operze 10.50, Chrome 4 i Safari 3. Czy jest jeszcze jakaś szansa dla wysłużonego kompilatora TraceMonkey? Nowy projekt Mozilli o nazwie JägerMonkey ma pozwolić Firefoksowi na nadrobienie strat.
Głównym problemem z TraceMonkey była, jak pisze David Mandelin z Mozilli, niemożność poradzenia sobie z kodem, którego nie dało się łatwo śledzić (trace). Kompilator był całkiem wydajny dla kodu, który był podatny na śledzenie (np. w teście math-cordic Sunspidera pozwalał na dziewięciokrotne przyśpieszenie), ale w pozostałych wypadkach nic nie dawał – np. w teście date-format-tofte, w którym w głównej pętli wywoływana była funkcja eval, wykorzystanie TraceMonkeya pozwalało na przyśpieszenie jedynie o 5%.
David Anderson, kolejny z deweloperów projektu, podsumował to następująco: „TraceMonkey ma dopalacze rakietowe, więc leci bardzo szybko gdy dopalacze są włączone, ale dopalacze nie zawsze mogą być włączone”.
Wiele czynników uniemożliwia zastosowanie strategii śledzenia w kompilatorze JIT. Większość skryptów, z którymi są problemy, można zakwalifikować do kilku kategorii:
-
programów, w których przebieg sterowania jest bardzo rozgałęziony. Śledzenie działa poprzez generowanie natywnego kodu dla ścieżek programu – jeśli program ma w pewnym momencie tysiąc ścieżek, TraceMonkey musiałby wygenerować tysiąc przebiegów z natywnym kodem, to zaś zajęłoby bardzo dużo pamięci. Dlatego po przekroczeniu pewnej liczby ścieżek TraceMonkey staje i wraca do interpretera.
-
programów, w których występuje wiele kombinacji typów. Jako że kod generowany jest oddzielnie dla każdego typu, to dla każdej kombinacji konieczne jest oddzielne odwzorowywanie zmiennych na typy.
-
programów, które w swoich pętlach wywołują eval. TraceMonkey musi znać wszystkie zmienne i ich typy, aby wygenerować zoptymalizowany kod. Ale skoro eval może zrobić praktycznie wszystko, to TraceMonkey musi się poddać i oddać sprawę interpreterowi.
Istnieją jednak inne niż śledzące (trace) typy kompilatorów JIT. Metodyczny (method) JIT kompiluje każde wyrażenie w metodzie tylko raz. Dodatkowo podział zachodzi względem obowiązkowej (mandatory) specjalizacji, a specjalizacji lekkiej (lite). Kompilatory JIT, które korzystają z lekkiej specjalizacji, nie mają problemów z eval czy wieloma kombinacjami typów, choć są znacznie wolniejsze od tych, które korzystają ze specjalizacji obowiązkowej. Oba te podejścia mogą się jednak dopełniać – i to właśnie ma się ujawnić w nowym kompilatorze dla SpiderMonkeya.
«poprzednia 1 2 następna »
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
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
31
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
Wynalazca WWW przed sądem: walczy tam o wolny dostęp do webowych technologii dla każdego
8
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
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
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ść
slawek22 @WebDev:
Te korporacje i "twórcy" starej daty których tak bronisz nie...
darekp @eimi, a co za różnica między zdobytym pieniędzmi a nie? Spróbuj zdobyć...
Jan "Tablet, na którym można uruchomić prawdziwe Microsoft Office, ładnie...
Maciekkkk Strona nie działa!
WebDev @eimi®
Zdobyte inaczej niż pieniędzmi, czyli jak? Czy mógłbyś to rozwinąć...
eimi @Webdev, a ja jeszcze raz Ci powiem - to co zdobyte inaczej niż pieniędzmi...
sade Powodem dla którego klienci wybierają ten sklep jest ich niewiedza.
- 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 marcin__ 2010-03-01 18:16:54 0
IP: 83.31.167.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6
#2 chrome 2010-03-01 19:05:21 0
IP: 90.156.104.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5
#3 marcin__ 2010-03-02 17:46:16 0
IP: 83.6.254.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6
#4 fake handbags6573 2010-10-16 05:52:34 0
IP: 117.44.44.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19