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

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

Microsoft Edge: nowy lider w szybkości uruchamiania JavaScriptu?
Redakcja
21.05.2015 13:24, aktualizacja: 21.05.2015 14:29

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)