W artykule opisano wpływ wykorzystania standardu WebAssembly na wydajność aplikacji internetowych. Wykorzystano oparty o WebAssembly szkielet aplikacji Blazor. Pokazano, iż można wykonać w pełni funkcjonalną aplikację SPA (ang. Single Page Application) pisząc kod aplikacji w języku C#. Wykonano drugą aplikację wykorzystując szkielet Angular. W obu aplikacjach zaimplementowano te same funkcjonalności. Dla wykonanych aplikacji porównano czasy ładowania w przeglądarce oraz rozmiar przesyłanych danych. Zbadano wpływ pamięci podręcznej przeglądarki i kompresji gzip. Zbadano wydajność obsługi żądań HTTP. Porównano wydajność kodu WebAssembly z kodem JavaScript w zadaniu sortowania n-elementowej listy obiektów. Zbadano wydajność aplikacji Blazor w modyfikowaniu drzewa DOM. Porównano wybrane metryki kodu obu aplikacji. JavaScript okazał się wydajniejszy w zadaniach związanych z wykorzystaniem API przeglądarki. WebAssembly był lepszy w zadaniach obliczeniowych.
EN
The article describes the impact of using WebAssembly on the performance of web applications. A Blazor framework based on WebAssembly was used. The paper shows that it is possible to create fully functioning Single Page Application using C# programming language. The second application was made using Angular framework. Both applications implement the same functionalities. For prepared applications loading time and size of transferred data was measured. The impact of using browser cache memory and gzip compression was examined. The performance of handling http requests using GET and POST methods were measured. The performance of WebAssembly against JavaScript code in task of sorting a list of N objects was compared. The performance of modifying html DOM was examined. Selected code metrics of written applications were compared. JavaScript presents better performance with tasks related with browser API. WebAssembly was better for computing.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.