Wydajność aplikacji mapowej na urządzeniach mobilnych

Wydajność aplikacji mapowej na urządzeniach mobilnych

Wydajność aplikacji mapowej na urządzeniach mobilnych (studium przypadku)*

Testy wydajności są jednym z wyznaczników jakości aplikacji (internetowej, mobilnej, etc.) i bywają punktem odniesienia do jej dalszego udoskonalania. Chociaż testy wydajności są testami niefunkcjonalnymi to są relatywnie często wykonywane i nie brakuje podmiotów, które się na nie decydują. Obecnie organizacje przeprowadzają pełne testy wydajności swoich aplikacji, najczęściej przed ich wdrożeniem [Agile 2012].

*Król, K., Halva, J., Pagáč Mokrá, A. (2020). Performance of map applications on mobile devices: case study. Geomatics, Landmanagement and Landscape (GLL), 3, 55-64.

speedfire

Wydajność ma istotne znaczenie także w przypadku komponentów i aplikacji mapowych, w szczególności na urządzeniach mobilnych [Król 2018a]. Alternatywą dla aplikacji bazodanowych są komponenty rastrowe, które pomimo swoich ograniczeń mogą znaleźć zastosowanie w prezentacji danych przestrzennych [Król i Szomorova 2015, Król i Prus 2016]. Wydajność przeglądarki obrazów może mieć szczególny wpływ na komfort jej użytkowania [Król i Bitner 2019]. Przeglądarki map rastrowych mogą być wykorzystywane przez różne podmioty, w tym jednostki administracji publicznej. Znajdują one zastosowanie, gdy nie jest potrzebny rozbudowany serwis mapowy lub gdy zaistnieje potrzeba szybkiego opublikowania mapy [Król 2018b].

Wydajność ma znaczenie

W ostatniej dekadzie znacząco wzrosły oczekiwania użytkowników względem wydajności witryn i aplikacji internetowych. Przeciętny użytkownik oczekuje, że strony internetowe wczytają się w oknie przeglądarki internetowej w ciągu dwóch sekund lub szybciej [Gomez 2010]. Wpłynęło to także na algorytmy wyszukiwarek, które premiują wydajność – każda sekunda opóźnienia może mieć negatywny wpływ na konwersję celu oraz miejsce witryny w rankingu.

Całkowity rozmiar stron internetowych stale rośnie od co najmniej 2011 roku. Pomimo presji na kompresję plików i minifikację kodu trend ten wydaje się utrzymywać [Wagner 2020]. Mała wydajność witryny internetowej sprawia, że klienci rzadziej składają zamówienia i podważają dążenie detalistów do przekształcenia ruchu internetowego w sprzedaż [Gallino i in. 2018]. Według badań przeprowadzonych przez Aberdeen Group aż 46% organizacji nie posiada narzędzi do monitorowania wydajności aplikacji internetowych, a nawet jednosekundowe opóźnienie może zmniejszyć konwersję celu o 7% [Arsenault 2015].

Materiały i metody

Celem badań jest pomiar wydajności aplikacji mapowej na urządzeniach mobilnych. Testom wydajności poddano prototyp interaktywnego komponentu mapowego typu „zoom-lens”. Komponent ten umożliwia przeglądanie plików rastrowych w powiększeniu (ryc. 1). Komponent utworzono z wykorzystaniem skryptów jQuery (TikslusZoom v 1.1.0).

Mapa ad-hoc Rycina 1. Prezentacja komponentu mapowego typu „zoom-lens”

W pomiarach wydajności wykorzystywane są różne aplikacje automatyzujące testy. Filarem badań były testy jednostkowe, tzw. testy weryfikacyjne typu ad-hoc. Tego rodzaju testy mają charakter kontrolny i wstępny. Pozwalają ocenić wydajność aplikacji internetowej na etapie początkowym (przed wdrożeniem).

Testy przeprowadzono przy pomocy wybranych narzędzi (Geekflare; mobiReady; Dareboost; PageSpeed Insights; Lighthouse), w trybie mobile, tak aby ocenić wstępną wydajność komponentu mapowego na urządzeniach przenośnych. Aplikacje testujące wybrano według kryterium dostępności. Każda z nich jest udostępniana bezpłatnie i przeprowadza testy w oknie przeglądarki internetowej, przez co nie jest konieczna instalacja dodatkowego oprogramowania (za wyjątkiem komponentu Lighthouse).
Każda z aplikacji testujących dokonuje pomiaru różnych wskaźników wydajności, co składa się na swoistą „komplementarność testów”. Wybrane wskaźniki wydajności dotyczą szybkości wczytywania aplikacji w oknie przeglądarki internetowej [Król i Zdonek 2020]. Inne mają charakter wskaźników syntetycznych, zagregowanych, np. Performance Score (Geekflare), Speed Index (Dareboost) lub Lighthouse Performance score (PageSpeed Insights). Lighthouse to rozszerzenie przeglądarki internetowej Chrome). Za pomocą Lighthouse dokonano pomiaru wartości wskaźników Time to Interactive (s) oraz Largest Contentful Paint (s).

Wyniki badań

Testowany komponent miał relatywnie niewielki rozmiar całkowity, który nie przekraczał jednego megabajta (około 900KB). O rozmiarze komponentu decydował przede wszystkim rozmiar plików rastrowych (około 750KB). Dlatego też podczas pomiaru wydajności odnotowano maksymalną możliwą wartość wskaźników zagregowanych „Performance Score” oraz „Lighthouse Performance score” (stymulanty), a także zadowalające wyniki pomiaru wskaźników związanych z czasem wczytywania komponentu w oknie przeglądarki internetowej. Jednak ich wartości mogłyby być jeszcze lepsze. Kompresja rastra mogłaby wpłynąć na poprawę wydajności komponentu. Król i Bitner [2019] wykazali, że w aplikacjach bazujących na mapach rastrowych, które mają charakter jedynie poglądowy i tymczasowy (aplikacje typu ad-hoc) zachowanie (bardzo) wysokiej jakości plików graficznych kosztem wydajności aplikacji jest bezcelowe.

rocket

Wskaźnik Speed Index (pomiar jednostkowy) osiągnął wartość 1601 milisekund. Jest to wartość relatywnie dobra, jednak dla tak małego komponentu zbyt wysoka. Wynika to z dużej objętości pliku rastrowego, który jest w tym przypadku głównym zasobem „statycznym”. Wskaźnik Speed Index to destymulanta. Pożądana jest jego jak najmniejsza wartość. Im szybsze renderowanie (większa wydajność) tym mniejsza wartość Speed Index, przy czym Google rekomenduje, aby nie przekraczała ona 1000 jednostek [Król 2018a].

„Najsłabszym” ogniwem testowanego komponentu jest plik rastrowy, prezentowany w oknie powiększenia. Wczytywanie tego zasobu jest odczuwalne, chociaż trwa ułamek sekundy. Opóźnienie to jest jednak łagodzone przez animację (tzw. loader, progress bar, pasek postępu, etc.).

Pomiary wykonane przy pomocy narzędzia Lighthouse pokazały, że czas oczekiwania na główny „składnik” aplikacji był stosunkowo długi i wyniósł 2.4 sekundy. Nieco szybciej testowany komponent uzyskiwał w oknie przeglądarki tzw. „pełną interaktywność”. Są to jednak jedynie wyniki pomiarów algorytmicznych. Komponent jest w pełni użyteczny dopiero, gdy zostaną wczytane wszystkie zasoby, które się na niego składają.

Podsumowanie

Uzyskane wyniki mają charakter „syntetyczny” i poglądowy. Testy algorytmiczne powinny być uzupełnione testami użyteczności w warunkach zwykłego użytkowania, np. z wykorzystaniem smartfona, oraz w warunkach skrajnych (stress testing). Zadowalająca wydajność komponentu nie jest bowiem jedynym atrybutem, który decyduje o jego użyteczności.

W przypadku niewielkich komponentów, które rozszerzają funkcjonalność witryn i aplikacji mapowych wskazana jest kompresja wszystkich część składowych komponentu, tj. skryptów, plików graficznych, bibliotek programistycznych, kaskadowych arkuszy stylów etc. Wskazana jest także konsolidacja zasobów i ograniczenie lub całkowite wyeliminowanie składników pobieranych ze źródeł zewnętrznych. Mogą one opóźniać wczytanie komponentu w oknie przeglądarki internetowej.

Źródła

  • Agile 2012. Application Performance Testing Basics. Agileload Blog.
  • Arsenault R. 2015. Slow is the New Downtime When it Comes to Web Performance. Aberdeen Group. https://bit.ly/Aberdeen-G (accessed: 24.11.2020).
  • Gallino S., Karacaoglu N., Moreno A. 2018. Why Retailers Should Care about Net Neutrality: The Impact of Website Performance on Online Retail. http://dx.doi.org/10.2139/ssrn.3260203
  • Gomez 2010. Why Web Performance Matters: Is Your Site Driving Customers Away? White Paper.
  • Król K. 2018a. Performance threshold of the interactive raster map presentation – as illustrated with the example of the jQuery Java Script component. Geographic Information Systems Conference and Exhibition GIS Odyssey 2018, 321-327.
  • Król K. 2018b. Comparative analysis of the performance of selected raster map viewers. Geomatics, Landmanagement and Landscape (GLL), 2, 23-32. https://doi.org/10.15576/GLL/2018.2.23
  • Król K., Bitner A. 2019. Impact of raster compression on the performance of a map application. Geomatics, Landmanagement and Landscape (GLL), 3, 41-51. https://doi.org/10.15576/GLL/2019.3.41
  • Król K., Prus B. 2016. The comparative analysis of selected interactive data presentation techniques on the example of the land use structure in the commune of Tomice. Polish Cartographical Review, 48(3), 115-127. https://doi.org/10.1515/pcr-2016-0009
  • Król K., Szomorova L. 2015. The possibilities of using chosen jQuery JavaScript components in creating interactive maps. Geomatics, Landmanagement and Landscape (GLL), 2, 45-54. https://doi.org/10.15576/gll/2015.2.45
  • Król K., Zdonek D. 2020. Aggregated Indices in Website Quality Assessment. Future Internet, 12(4), 72. https://doi.org/10.3390/fi12040072
  • Wagner J. 2020. Why Performance Matters. Web Fundamentals. Google Developers. https://bit.ly/Performance-M (accessed: 24.11.2020).

Dodaj komentarz

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