Pomiar wydajności za pomocą modelu RAIL

RAIL to ukierunkowany na użytkownika model wydajności, który zapewnia strukturę do myślenia o wydajności. Model dzieli wrażenia użytkownika na kluczowe działania (np. kliknięcie, przewijanie, wczytywanie) i pomaga zdefiniować cele związane z wydajnością dla każdej z nich.

RAIL oznacza 4 różne aspekty cyklu życia aplikacji internetowej: odpowiedź, animacja, bezczynność i ładowanie. Użytkownicy mają różne oczekiwania w zakresie skuteczności w każdym z tych kontekstów, dlatego cele związane ze skutecznością są definiowane na podstawie kontekstu i badań nad wrażeniami użytkowników dotyczącymi postrzegania opóźnień przez użytkowników.

4 części modelu wydajności RAIL: odpowiedź, animacja, bezczynność i ładowanie.
4 części modelu wydajności RAIL

Liczą się użytkownicy

Zadbaj o to, aby użytkownicy skupiali się na Twoich działaniach związanych ze skutecznością. W tabeli poniżej znajdziesz kluczowe dane o tym, jak użytkownicy postrzegają opóźnienia skuteczności:

Postrzeganie przez użytkowników opóźnień skuteczności
od 0 do 16 ms Użytkownicy wyjątkowo dobrze radzą sobie ze śledzeniem ruchu i nielubią niepłynnych animacji. Animacje są postrzegane jako płynne, jeśli co sekundę renderowanych jest 60 nowych klatek. Jest to 16 ms na klatkę, w tym czas potrzebny przeglądarce na wyrenderowanie nowej klatki na ekranie, co pozostawia aplikacji na utworzenie takiej klatki po około 10 ms.
od 0 do 100 ms Reaguj na działania użytkowników w tym czasie, a użytkownicy mają wrażenie, że efekt jest natychmiastowy. Już dłużej, a relacja między akcją i reakcją zostanie zerwana.
od 100 do 1000 ms W tym oknie rzeczy są jakby naturalnym, ciągłym postępem zadań. W przypadku większości użytkowników internetu wczytywanie stron i zmienianie widoków to zadanie.
1000 ms lub więcej Po upływie 1000 milisekund (1 sekunda) użytkownicy tracą koncentrację na wykonywanym zadaniu.
10 000 ms lub więcej Jeśli czas przekracza 10 000 milisekund (10 sekund), użytkownicy są sfrustrowani i prawdopodobnie porzucą zadania. Może nie wrócić do niego później.

Cele i wytyczne

W kontekście systemu RAIL terminy cele i wytyczne mają konkretne znaczenie:

  • Cele. Kluczowe dane o skuteczności związane z wrażeniami użytkowników. Na przykład kliknij, aby malować w czasie krótszym niż 100 milisekund. Ponieważ postrzeganie przez człowieka jest względnie stałą, te cele raczej nie zmienią się w najbliższym czasie.

  • Wytyczne. Zalecenia, które pomagają osiągnąć cele. Mogą być związane z bieżącymi warunkami sprzętowymi i połączeniem sieciowymi oraz z czasem mogą się zmieniać.

Odpowiedź: przetwarzanie zdarzeń w czasie krótszym niż 50 ms

Cel: wprowadzanie zmian zainicjowanych przez użytkownika w ciągu 100 ms, aby użytkownicy mieli wrażenie, że interakcje są natychmiastowe.

Wskazówki:

  • Aby zapewnić widoczność odpowiedzi w ciągu 100 ms, przetwarzaj zdarzenia wejściowe użytkownika w ciągu 50 ms. Dotyczy to większości danych wejściowych, takich jak klikanie przycisków, przełączanie elementów sterujących formularza czy uruchamianie animacji. Nie dotyczy to przeciągania dotykowego ani przewijania.

  • Choć może się to wydawać sprzeczne z intuicją, nie zawsze jest to właściwe wezwanie do natychmiastowego reagowania na opinie użytkowników. Możesz użyć tego okna 100 ms do innych, bardziej kosztownych czynności, ale pamiętaj, aby nie zablokować użytkownika. Jeśli to możliwe, pracuj w tle.

  • W przypadku działań, które trwają dłużej niż 50 ms, zawsze przesyłaj opinię.

50 czy 100 ms?

Celem jest reagowanie w czasie krótszym niż 100 ms, dlaczego więc nasz budżet wynosi tylko 50 ms? Dzieje się tak, ponieważ zwykle oprócz obsługi danych wejściowych wykonywana jest inna praca, która zajmuje część czasu dostępnego dla akceptowanej odpowiedzi. Jeśli w czasie bezczynności aplikacja wykonuje zadania z wykorzystaniem zalecanych 50 ms fragmentów, dane wejściowe mogą być umieszczane w kolejce przez maksymalnie 50 ms, jeśli wystąpią podczas jednego z tych fragmentów. W związku z tym można przyjąć, że do rzeczywistej obsługi danych wejściowych dostępnych jest tylko pozostałe 50 ms. Efekt ten można zwizualizować na poniższym diagramie, który przedstawia, jak dane wejściowe odebrane podczas nieaktywnego zadania są umieszczane w kolejce, co skraca dostępny czas przetwarzania:

Diagram przedstawiający, w jaki sposób dane wejściowe odebrane podczas nieaktywnego zadania są umieszczane w kolejce, co skraca dostępny czas przetwarzania do 50 ms
Jak nieaktywne zadania wpływają na budżet odpowiedzi na dane wejściowe.

Animacja: utwórz klatkę w ciągu 10 ms.

Cele:

  • Tworzenie każdej klatki w animacji w ciągu maksymalnie 10 ms. Maksymalny budżet każdej klatki to 16 ms (1000 ms / 60 klatek na sekundę ≈ 16 ms), ale renderowanie każdej klatki przez przeglądarki zajmuje około 6 ms, dlatego zalecane jest 10 ms na klatkę.

  • Zadbaj o płynność obrazu. Użytkownicy zwracają uwagę na różnice w liczbie klatek.

Wskazówki:

  • W punktach wysokiego tętna, takich jak animacje, najistotniejsze jest to, by nie robić nic tam, gdzie się da, a najmniej niczego nie robić. W miarę możliwości korzystaj z odpowiedzi 100 ms na wstępne obliczenia. Dzięki temu zwiększysz swoje szanse na uzyskanie 60 kl./s.

  • W sekcji Wydajność renderowania znajdziesz różne strategie optymalizacji animacji.

  • Animacje wizualne, np. wejścia i wyjścia, przeszkody i wskaźniki wczytywania.
  • Przewijane. Obejmuje to przesuwanie, które polega na tym, że użytkownik zaczyna przewijać stronę, a potem ją cofa, a strona nadal przewija się.
  • Przeciąganie. Animacje często są reprezentowane przez interakcje użytkownika, takie jak przesuwanie mapy lub ściąganie i rozciąganie palcami w celu powiększenia.

Bezczynność: maksymalizuj czas bezczynności

Cel: maksymalizuj czas bezczynności, aby zwiększyć prawdopodobieństwo, że strona zareaguje na dane wejściowe użytkownika w ciągu 50 ms.

Wskazówki:

  • Aby dokończyć odroczoną pracę, użyj czasu bezczynności. Na przykład przy wstępnym wczytywaniu strony wczytaj jak najmniej danych, a potem użyj czasu bezczynności, by wczytać resztę.

  • Możesz pracować w czasie bezczynności w ciągu maksymalnie 50 ms. a tym samym spowodować, że aplikacja przestanie odpowiadać na polecenia użytkownika w ciągu 50 ms.

  • Jeśli użytkownik wchodzi w interakcję ze stroną w czasie bezczynności, interakcja z nią powinna zawsze mieć najwyższy priorytet i przerywać ten czas bezczynności.

Wczytywanie: dostarczaj treści i zyskaj interaktywność w mniej niż 5 sekund

Gdy strony wczytują się powoli, użytkownicy rozpraszają się, a użytkownicy postrzegają zadanie jako nieprawidłowe. Witryny, które szybko się ładują, mają dłuższą średnią sesję, niższy współczynnik odrzuceń i większą widoczność reklam.

Cele:

Wskazówki:

Narzędzia do pomiarów RAIL

Istnieje kilka narzędzi, które pomogą Ci zautomatyzować pomiary RAIL. Ich wybór zależy od tego, jakich informacji potrzebujesz i jakiego przepływu pracy wybierzesz.

Narzędzia deweloperskie w Chrome

Narzędzia deweloperskie w Chrome zapewniają szczegółową analizę wszystkiego, co dzieje się podczas wczytywania i uruchamiania strony. Aby zapoznać się z interfejsem panelu Wydajność, przeczytaj artykuł Pierwsze kroki z analizą wydajności środowiska wykonawczego.

Szczególnie istotne są te funkcje Narzędzi deweloperskich:

Latarnia morska

Lighthouse jest dostępny w Chrome DevTools, na stronie PageSpeed Insights, jako rozszerzenie do Chrome, jako moduł Node.js oraz w ramach WebPageTest. Podajesz mu adres URL, symuluje on urządzenie ze średniej półki cenowej z powolnym połączeniem 3G, przeprowadza serię kontroli na stronie i wyświetla raport na temat wydajności wczytywania oraz sugestie, co można poprawić.

Szczególnie istotne są takie audyty:

Odpowiedź

Wczytywanie

WebPageTest

WebPageTest to narzędzie do mierzenia wydajności w sieci, które za pomocą prawdziwych przeglądarek uzyskuje dostęp do stron internetowych i zbiera dane dotyczące czasu. Wpisz adres URL na stronie webpagetest.org/easy, aby uzyskać szczegółowy raport na temat wydajności wczytywania strony na prawdziwym urządzeniu Moto G4 z wolnym połączeniem 3G. Możesz też skonfigurować ją tak, aby obejmowała audyt Lighthouse.

Podsumowanie

RAIL to usługa z perspektywy, która pozwala spojrzeć na wrażenia użytkownika witryny jako na drogę złożoną z różnych interakcji. Dowiedz się, jak użytkownicy postrzegają Twoją witrynę, aby wyznaczyć cele skuteczności mające największy wpływ na ich wrażenia.

  • Liczą się użytkownicy

  • Reagować na działania użytkownika w czasie krótszym niż 100 ms.

  • Podczas animowania i przewijania klatki wyrenderuj ją w czasie krótszym niż 10 ms.

  • Maksymalizuj czas bezczynności wątku głównego.

  • Ładowanie treści interaktywnych w czasie krótszym niż 5000 ms.