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

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

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.

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.

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.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.