Analiza porównawcza wydajności wybranych przeglądarek map rastrowych*

*Król, K. (2018). Comparative analysis of the performance of selected raster map viewers. Geomatics, Landmanagement and Landscape (GLL), 2, 23-32. DOI: 10.15576/GLL/2018.2.23

Przeglądarki map rastrowych mogą być wykorzystywane przez różne podmioty, w tym jednostki administracji publicznej. Znajdują one zastosowanie w szczególności, gdy brak jest ekonomicznego uzasadnienia tworzenia rozbudowanych serwisów mapowych lub gdy zaistnieje potrzeba szybkiego opublikowania mapy.

Przeglądarki te mogą być wykonane przy pomocy jednego z wielu dostępnych komponentów. Jednak nie wszystkie z nich są optymalne do takich zastosowań. Wybrane z nich mogą być mało wydajne, co może utrudnić lub wręcz uniemożliwić przeglądanie mapy. Celem pracy była analiza porównawcza wydajności wybranych przeglądarek map rastrowych.

speedometer

Do badań wykorzystano prototypowe aplikacje, stanowiące implementację wybranych narzędzi projektowych. Pomiary wydajności wykonano przy pomocy narzędzi automatyzujących testy. Wyznaczono wartość syntetycznego metawskaźnika wydajności ES-SCORE (Estimated Speed Score). Wykazano, że aplikacja utworzona z zastosowaniem komponentu ImageViewer (jQuery JavaScript) była obiektywnie najlepsza spośród testowanych (w przyjętym modelu badań).

Wydajność ma znaczenie

Przeglądarki grafik rastrowych (przeglądarki obrazów, image viewers) są często udostępniane bezpłatnie i mogą być wykorzystywane przez różnorakie podmioty, w tym jednostki administracji publicznej. Znajdują one zastosowanie w szczególności, gdy brak jest ekonomicznego uzasadnienia tworzenia rozbudowanych serwisów mapowych, lub gdy zaistnieje potrzeba szybkiego opublikowania mapy np. dla zdarzeń lub zjawisk występujących w określonym czasie, np. w przypadku zmiany nazewnictwa ulic lub numeracji porządkowej budynków [Salata i Król 2012]. Ograniczenia użyteczności tak udostępnianych prezentacji wynikają przede wszystkim z wielkości samego rastra, który jest często wczytywany w oknie przeglądarki w całości, co może być mało wydajne.

Dobór odpowiedniej (wydajnej) przeglądarki grafik może mieć szczególny wpływ na komfort przeglądania mapy rastrowej. W wybranych przypadkach, może nawet warunkować jej dostępność w ogóle.

Testy wybranych komponentów jQuery

Analizie porównawczej poddano wybrane komponenty wykonane przy pomocy biblioteki jQuery JavaScript i udostępniane w ramach licencji MIT — (1) Mapbox, (2) MiniMap, (3) ImageViewer oraz (4) ImageTrans. Testowane narzędzia umożliwiają dynamiczne przeglądanie grafik rastrowych w oknie przeglądarki. Efekt ten jest jednak, w każdym z przypadków, realizowany w odmienny sposób.

Mapbox Zoomable jQuery Map Plugin [Mohler 2018] służy do tworzenia skalowalnych, przeciąganych (Zoomable, draggable) map z wieloma warstwami zawartości (zoomable, draggable maps with multiple layers of content). MiniMap [Bai 2016] is an jQuery plugin that creates an interactive minimap of an element and its children. ImageViewer [Yadav 2018] and ImageTrans [Yu 2016] to przeglądarki grafik rastrowych wykonane w oparciu o jQuery JavaScript. Ich funkcjonalność sprowadza się do prezentacji plików graficznych w oknie przeglądarki internetowej.

Badania przeprowadzono w warunkach symulacji typowej sesji użytkownika (odtworzenie przebiegu interakcji użytkownika z serwisem). Sesja użytkownika definiowana jest, jako sekwencja czasowo i logicznie skorelowanych żądań nadesłanych przez użytkownika w trakcie pojedynczej wizyty na witrynie. Podczas sesji użytkownik wykonuje pewne typowe interakcje, takie jak np. przeglądanie mapy lub wyszukiwanie obiektów. Przeprowadzenie symulacji w kontrolowanych warunkach daje możliwość oceny reakcji systemu na obciążenie o określonym charakterze i intensywności [Suchacka 2010].

Do badań wykorzystano prototypowe aplikacje, stanowiące implementację wybranych narzędzi projektowych. Zmierzono wydajność jednostkową, określaną też jako – wydajność początkowa, całkowita, lub występująca w chwili pomiaru. Badania przeprowadzono w sposób nieformalny, w warunkach zwykłego użytkowania. Pomiaru dokonano na komputerach stacjonarnych tj. w trybie desktop, przy pomocy wybranych aplikacji automatyzujących testy, w tym:
Lighthouse — Performance grade,
GTmetrix — PageSpeed Score, YSlow,
Pingdom — Google PageSpeed Performance grade, load time, page size,
Dareboost — Performance grade, Speed Index.

Normalizacja zmiennych

Tak pozyskane wyniki pomiarów poddano normalizacji z wykorzystaniem unitaryzacji zerowanej. Destymulantą były wskaźniki: fully loaded time oraz współczynnik Speed Index. Następnie wyznaczono wartość syntetycznego metawskaźnika wydajności ES-SCORE (Estimated Speed Score) poprzez zsumowanie wartości wszystkich znormalizowanych cech diagnostycznych. Pozwoliło to opisać wydajność każdej z testowanych aplikacji zagregowaną notą końcową. Na tej podstawie utworzono ranking aplikacji według stopnia ich wydajności.

Im wyższa wartość wskaźnika ES-SCORE tym lepsza wydajność aplikacji.

Wyniki testów wydajności

Wynikiem implementacji skryptów były cztery aplikacje internetowe umożliwiające przeglądanie mapy rastrowej (ryc. 1). Do prezentacji wykorzystano mapę pokrycia terenu gminy Wolbrom (woj. małopolskie, Polska), wykonaną przy pomocy danych zaczerpniętych z bazy BDOT10k. Mapę przygotowano w rozdzielczości 4677x3307px (około 4,25 MB), co miało zagwarantować relatywnie duże obciążenie klienta. Pomiaru dokonano z serwerów rozmieszczonych w różnych lokalizacjach: (1) Gtmetrix – Vancouver, Canada, (2) Pingdom – Stockholm, Sweden, (3) Dareboost – Paris, France.

mapa-jqueryRycina 1. Prezentacja aplikacji utworzonych przy pomocy skryptów, odpowiednio: (1) Mapbox, (2) MiniMap, (3) ImageViewer oraz (4) ImageTrans (zrzut ekranu)
Źródło: opracowanie własne

Największą wartość wskaźnika YSlow uzyskała aplikacja utworzona w oparciu o plugin MiniMap, najmniejszą zaś aplikacja przygotowana z zastosowaniem Mapbox. Zastanawiająca jest bardzo niska wartość wskaźnika PageSpeed Score, który uzyskała aplikacja ImageViewer w pomiarze wykonanym przy pomocy GTmetrix, zwłaszcza, że wartość tego samego wskaźnika pozyskana za pomocą aplikacji Pingdom była jedną z najwyższych [Król 2018]. Na ocenę wydajności całkowitej (ES-SCORE) złożyły się wartości pomiarów czasu wczytywania aplikacji w oknie przeglądarki (fully loaded time), a także wartości wskaźników wydajności PageSpeed Score, Speed Index oraz YSlow. Łącznie normalizacji poddano 8 zmiennych diagnostycznych, zatem każda z aplikacji mogła uzyskać maksymalną notę końcową równą 8 punktów, najmniejszą zaś równą 0 punktów.
Największą wartość ES-SCORE uzyskała aplikacja utworzona przy pomocy pluginu MiniMap, najmniejszą zaś aplikacja wykonana z wykorzystaniem ImageTrans (ryc. 2). Wyniki te pokrywają się z rankingiem wydajności utworzonym na podstawie analizy czasu wczytywania aplikacji w oknie przeglądarki. Najlepsze wartości atrybutu „fully loaded time” uzyskała aplikacja MiniMap, najgorsze zaś aplikacja ImageTrans.

wskaznikRycina 2. Wydajność aplikacji według wartości wskaźnika ES-SCORE
Źródło: opracowanie własne

Podsumowanie

Pomiar jednostkowy oddaje chwilową, „punktową” (cząstkową) wydajność witryny. Szczegółowych danych na temat wydajności witryny lub aplikacji internetowej może dostarczyć stały monitoring i pomiary wykonane w jednostce czasu. Ponadto o wynikach może decydować mechanizm pomiaru, a nie faktyczna wydajność aplikacji.
Największą wydajność odnotowano w przypadku aplikacji utworzonej w oparciu o plugin MiniMap. Uzyskała ona także najlepsze wartości wskaźnika „fully loaded time”. Jednocześnie jednak aplikacja ta była najmniej funkcjonalna, choć w podstawowej wersji, najprostsza do utworzenia. Aplikacja wykonana w oparciu o plugin ImageTrans oferowała graficzne menu obsługi, co zwiększało jej użyteczność i atrakcyjność dla odbiorcy. Jednocześnie jednak aplikacja ta była najmniej wydajna. Kompromis pomiędzy wydajnością a użytecznością cechował aplikację utworzoną w oparciu o plugin ImageViewer. I to na nią należałoby wskazać, jako obiektywnie najlepszą spośród testowanych przeglądarek obrazów (w przyjętym modelu badań).

Źródła

  • Bai, J. (2016). MiniMap jQuery plugin. https://github.com/john-bai/jquery-minimap
  • Król, K. (2018). Comparative analysis of the performance of selected raster map viewers. Geomatics, Landmanagement and Landscape (GLL), 2, 23-32. DOI: 10.15576/GLL/2018.2.23
  • Mohler, A. (2018). Mapbox: Zoomable jQuery Map Plugin. http://wayfarerweb.com/jquery/plugins/mapbox
  • Salata, T., Król, K. (2012). Zastosowanie języków skryptowych JavaScript w przetwarzaniu i wizualizacji danych przestrzennych na przykładzie planu miejscowego gminy Tomice. W: D. Ilnicki, K. Janc (red.), Rozprawy Naukowe Instytutu Geografii i Rozwoju Regionalnego (Tom 29). Badania Regionalnych i lokalnych struktur funkcjonalno-przestrzennych (247-255). Wrocław: Uniwersytet Wrocławski.
  • Suchacka, G. (2010). Modelowanie ruchu webowego dla potrzeb badania wydajności biznesowego serwisu WWW. Pomiary-Automatyka-Robotyka, 14, 57-60.
  • Yadav, S. (2018). ImageViewer v 1.1.0. http://ignitersworld.com/lab/imageViewer.html
  • Yu, Z. (2016). ImageTrans – jQuery plugin to rotate, zoom, transform images. https://github.com/codeyu/jQuery.ImageTrans

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *