2012-01-30 17 views
5

Mam projekt, nad którym pracuję dla mojej firmy i teraz muszę zdecydować, który JS Engine powinienem użyć. Obecnie wybory, które mam, to Spidermonkey lub Rhino.Testy wydajności Rhino VS Spidermonkey

Moim głównym zmartwieniem jest wydajność i skalowalność. Chciałem się dowiedzieć, czy zostały wykonane testy wydajności do porównania dwóch silników?

Znalazłem google w tej kwestii trudniejsze, niż się spodziewałem.

Z góry dziękuję za pomoc, Ben.

+0

Chciałbym zagłosować na V8, ale trudno jest znaleźć dobre porównanie. Spróbuj wykonać kilka podstawowych testów przeglądarki javascript. W mniejszym lub większym stopniu odzwierciedlają one osiągi silnika. – SoonDead

+0

Obecnie V8 nie jest opcją. Szukam testów perfekcyjnych porównujących powyższe silniki. Dzięki. –

Odpowiedz

3

Nie znam żadnych benchmarków porównujących te dwa, ale z mojego doświadczenia wynika, że ​​SpiderMonkey był szybszy. Jeśli wydajność jest jedynym czynnikiem, pójdę z tym, ponieważ V8 nie jest opcją.

Używam Rhino choć (w rzeczywistości RingoJS, który jest oparty na Rhino i zawiera implementację CommonJS i sporo użytecznych bibliotek), ponieważ jest wystarczająco szybki i ma (znowu z mojego doświadczenia) bardziej dojrzały zbiór bibliotek/dostępne ramy. Może również łączyć się bezpośrednio z bibliotekami Java, więc dostępna jest ogromna ilość kodu.

Wspomniałeś także o skalowalności, a Rhino może mieć przewagę, ponieważ ma przyzwoitą obsługę wielowątkowości. Ringo implementuje nieznacznie ulepszony interfejs API robotów internetowych.

Nie znam żadnych bibliotek wielowątkowych dla SpiderMonkey, ale mogą one istnieć.

+0

Zajmę się kwestią wielowątkowości, ponieważ może to być przyczyną różnicy wydajności podczas używania SpiderMonkey w porównaniu z Rhino. Dziękuję za odpowiedź, Ben. –

10

Regularnie przeprowadzam testy porównawcze V8 i SunSpider na Rhino i Spidermonkey (zrzeczenie się: jestem uczestnikiem projektu Rhino). Obecne wydanie Rhino (1.7R3) jest wciąż nieco wolniejsze niż Spidermonkey, ale ostatnie migawki git dogoniły ładnie. (Zauważ, że mówię o interpretowane SpiderMonkey bez Jaegermonkey lub innych JIT - Jaegermonkey jest sposób szybciej.)

Na V8-benchmarków-V5 Rhino 1.7R3 wyniki około 360 na moim komputerze, Rhino git mistrza 480, Rhino git rhino_1_8 gałąź 570, a ostatni Spidermonkey zbudował około 540 (wyżej jest lepiej).

Dla Sunspidera 0.9.1, liczby wynoszą 8890 ms dla Rhino 1.7R3, 2250 ms dla Rhino master, 2180 ms dla gałęzi rhino_1_8 i 1390 ms dla Spidermonkey (jest to milisekunda, więc niższe jest lepsze).

Wszystkie testy porównawcze Rhino są w Oracle JDK 1.7.0 z maszyną wirtualną serwera i ustawieniami domyślnymi oraz po kilku rundach rozgrzewania. Dzięki najnowszym migawkom Rhino możesz z łatwością uruchamiać testy porównawcze za pomocą mrówek porównawczych *. Moja kompilacja Spidermonkey to kilkumiesięczna migawka zbudowana ze standardowymi instrukcjami.

+0

Dzięki za szczegółowe informacje dotyczące twojego doświadczenia z obydwoma. Na pewno weźmiemy to pod uwagę. Ben. –

Powiązane problemy