Microsoft Edge: nowy lider w szybkości uruchamiania JavaScriptu?

Microsoft Edge: nowy lider w szybkości uruchamiania JavaScriptu?
Redakcja

21.05.2015 13:24, aktual.: 21.05.2015 14:29

Zalogowani mogą więcej

Możesz zapisać ten artykuł na później. Znajdziesz go potem na swoim koncie użytkownika

Przy okazji wydania nowej wersji testowej systemu Windows 10 Microsoft zwrócił szczególną uwagę na znaczne zwiększenie szybkości działania przeglądarki Edge. Gdy zajrzymy w szczegóły techniczne tych zagadnień, to nie ulega wątpliwości, że pracownicy firmy włożyli sporo pracy, aby wykonywanie kodu było jeszcze szybsze. Przekłada się to na działanie stron i aplikacji internetowych.

Silnik Chakra, odpowiedzialny za przetwarzanie kodu JavaScript pojawił się po raz pierwszy w przeglądarce Internet Explorer 9 i od tego czasu jest sukcesywnie rozwijany. W kolejnych wersjach IE jego wydajność była zwiększana, ale zmiany, jakie wdrożono w Edge wydają się już nie krokiem, a skokiem do przodu. Podstawową zmianą jest wprowadzenie funkcji inline działających w obrębie oddzielnych plików – działanie to polega na umieszczaniu kodu funkcji w miejscu, gdzie jest wywoływana, dzięki czemu da się wyeliminować narzutu związany z wywołaniem. Sprawa nie jest jednak tak prosta, jak mogłoby się wydawać, bo tworzenie takiego kodu może się okazać wolniejsze np. wskutek tego, że funkcje znajdują się w różnych plikach.

Obraz

Badania przeprowadzone przez Microsoft wykazały, że jak do tej pory Chakra była w stanie zapisywać w ten sposób jedynie 31% funkcji. W aż 48% przypadkach było to niemożliwe lub po prostu nieopłacalne ze względu na kod rozbity na wiele plików. Zmiany poczynione w najnowszej wersji umożliwiają wykorzystanie funkcji inline nawet wtedy, gdy mamy do czynienia z wieloma plikami. Bardzo dobre efekty dało także wprowadzenie zgodności z ECMAScript 6, które umożliwia tworzenie w kodzie stałych. W przypadku zmiennych kompilator musi obserwować wartość, aby wiedzieć, czy nie zmienia się ona w czasie działania aplikacji. Tutaj tego problemu nie ma, co pozwala usunąć kolejny niepotrzebny narzut. Wydawać by się mogło, że stałe nie są zbyt często wykorzystywane, ale 20% z testowanych ponad 10 tysięcy stron zawierało kod, w którymś część zmiennych liczb całkowitych można uznać za stałe (są tworzone raz, a później nie podlegają żadnym zmianom). Kompilator JIT z Chakry stara się je wykrywać, co pozwala unikać niepotrzebnego sprawdzania wartości.

Kolejnym zagadnieniem są wyjątki i wykorzystywane przy nich bloki try-catch, które okazują się niezwykle kosztowe dla kompilatora. Poprawki w silniku doprowadziły do tego, że teraz w przypadku braku wystąpienia wyjątku kod wykonywany wewnątrz bloku try jest wykonywany niemal tak szybko, jakby konstrukcja try-catch w ogóle nie występowała w kodzie. Inne optymalizacje są związane z obsługą zminimalizowanego kodu JavaScript – technika ta jest często wykorzystywana np. do zmniejszenia wielkości plików, ale czasami powoduje, że kompilacja może być wolniejsza. Badania pokazały, że wiele stron korzysta przy minimalizacji z UglifyJS, wprowadzono więc zmiany, które pozwalają szybciej wykonywać taki kod – według Microsoftu od 20 do nawet 50% niż wcześniej. Oprócz tego programiści zadbali o możliwie najszybszą obsługę tablic, w szczególności w przypadku użycia na nich metod indexOf, map i forEach. Te zmiany w niektórych przypadkach mogą dać nawet pięciokrotne zwiększenie szybkości.

Obraz

No dobrze, zmian jest sporo, ale jak to wszystko wygląda w praktyce? Microsoft postanowił się w tym miejscu pochwalić wynikami w testach Google Octane 2.0, a także Jet Stream stworzonym przez Apple. W obu przeglądarka Edge deklasuje konkurencję w postaci Chrome Cannary i testowej wersji Firefoksa. Przepaść względem Internet Explorera widać w szczególności w teście Octane, gdzie IE 11 zdobył nieco ponad 10 tysięcy punktów, a Edge aż 23,5 tysiąca. Warto natomiast zaznaczyć, że walka z optymalizacją jest zadaniem ciągłym i zawsze da się coś poprawić – w momencie wydania stabilnej wersji systemu Windows 10 możemy więc spodziewać się jeszcze szybszej obsługi JavaScript. Konkurencja jednak na pewno nie zostanie w tyle, ale to każdemu wyjdzie na zdrowie, a najwięcej zyskają internauci.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (70)