Całkowity czas blokowania (TBT)

Wskaźnik łącznego czasu blokowania (TBT) mierzy łączny czas po pierwszym wyrenderowaniu treści (FCP), w którym wątek główny był zablokowany na tyle długo, że uniemożliwiało to reagowanie na dane wejściowe.

Domyślnie Lighthouse przestaje monitorować TBT po czasie do interakcji (TTI), podobnie jak niektóre inne narzędzia laboratoryjne, które mierzą wczytywanie strony. Zapoznaj się z artykułem Jaki jest związek między TBT a TTI?.

Wątek główny jest uważany za „zablokowany”, gdy w wątku głównym występuje zadanie długie, które jest uruchomione przez ponad 50 milisekund. Mówimy, że wątek główny jest „zablokowany”, ponieważ przeglądarka nie może przerwać trwającego zadania. Dlatego w przypadku korzystania ze strony przez użytkownika w trakcie długiego zadania przeglądarka musi poczekać na jego zakończenie, zanim będzie mogła na nie odpowiedzieć.

Jeśli zadanie jest wystarczająco długie (ponad 50 milisekund), użytkownik może zauważyć opóźnienie i potraktować stronę jako powolną lub niedziałającą.

Czas blokowania danego długiego zadania to jego czas trwania przekraczający 50 milisekund. Całkowity czas blokowania strony to suma czasu blokowania każdego długiego zadania, które wystąpiło po pierwszym wyrenderowaniu w przedziale czasu (zwykle jest to TTI w przypadku narzędzi do wczytywania strony lub łączny czas śledzenia w przypadku innych narzędzi).

Na przykład zwróć uwagę na diagram wątku głównego przeglądarki podczas wczytywania strony:

Oś czasu zadań w wątku głównym
Oś czasu zadań w wątku głównym.

Oś czasu na powyższym obrazku zawiera 5 zadań, z których 3 są długimi zadaniami, ponieważ ich czas trwania przekracza 50 milisekund. Następny diagram pokazuje czas blokowania dla każdego z długich zadań:

Oś czasu zadań w wątku głównym pokazująca czas blokowania
Te same zadania z zaznaczonymi czasami blokowania.

Choć łączny czas wykonywania zadań w wątku głównym wynosi 560 milisekund, to tylko 345 milisekund z tego czasu jest uważane za czas blokowania.

Czas trwania działania (milisekundy) Czas blokowania zadania (w milisekundach)
Zadanie pierwsze 250 200
Drugie zadanie 90 40
Zadanie 3. 35 0
Zadanie 4 30 0
Zadanie 5 155 105
Całkowity czas blokowania 345 ms

Jaki jest związek między TBT a INP?

TBT jest terminem sprzed INP i przydaje się jako wskaźnik problemów z INP, zwłaszcza w laboratoriach, gdzie pomiar INP jest trudniejszy. Jednak TBT może wskazać potencjalne problemy, jeśli nie pojawią się żadne problemy u użytkowników – jeśli w danym momencie nie wejdą oni w interakcję. Może też nie wykrywać problemów spowodowanych przez interakcje, gdy pomiar jest przeprowadzany w środowisku laboratoryjnym. Zalecamy pomiar INP w warunkach rzeczywistych jako wskaźnik rzeczywistych problemów z szybkością działania, z którymi spotykają się użytkownicy. TBT może być odpowiednim wskaźnikiem zastępczym dla INP w przypadku laboratorium, ale nie zastępuje on samego INP.

Jaki jest związek między TBT i TTI?

TBT jest mierzony w danym okresie. W przypadku niektórych narzędzi laboratoryjnych, które tradycyjnie mierzą czas wczytywania strony, m.in. Lighthouse, czas TBT był mierzony do momentu osiągnięcia TTI, ponieważ pomaga to określić, jak długo strona jest nieinteraktywna, zanim znowu stanie się interaktywna w stopniu funkcjonalnym. Jednak TBT może być nadal mierzone po wczytaniu strony, czyli poza TTI, na przykład w trybie Lighthouse w trybie zakresu czasu.

TTI uznaje stronę za „niezawodnie interaktywną”, jeśli przez co najmniej 5 sekund w wątku głównym nie ma długich zadań. Oznacza to, że 3 zadania o długości 51 ms rozłożone na 10 sekund mogą wydłużyć TTI tak samo jak jedno 10-sekundowe zadanie, ale w oczach użytkownika te 2 sytuacje będą się bardzo różnić.

W pierwszym przypadku 3 zadania o długości 51 ms będą miały czas TBT równy 3 milisekundy. Natomiast jedno zadanie trwające 10 sekund miałoby TBT 9950 ms. Większa wartość TBT w drugim przypadku oznacza gorsze wrażenia.

Ten przykład pokazuje, dlaczego TBT jest często lepszym wskaźnikiem niż TTI, ponieważ jest mniej podatny na wartości odstające. Dotyczy to nawet użycia technologii TTI jako punktu końcowego TBT.

Jak mierzyć TBT

TBT to dane, które należy mierzyć w laboratorium. Najlepszym sposobem na sprawdzenie informacji jest przeprowadzenie w witrynie audytu wydajności w Lighthouse. Szczegółowe informacje o korzystaniu z tej funkcji znajdziesz w dokumentacji Lighthouse na temat TBT.

Można mierzyć TBT w terenie, ale nie zalecamy korzystania z tej opcji, ponieważ interakcje użytkowników mogą wpływać na dane w trakcie sprawdzania strony w sposób, który prowadzi do dużych rozbieżności w raportach. Jeśli chcesz spojrzeć poza pojedynczą interakcję INP, zalecamy skorzystanie z nowszego interfejsu Long Animations Frame API.

Narzędzia laboratoryjne

Jaki jest dobry wynik w TBT?

Aby zadbać o wygodę użytkowników, warto zadbać o to, aby łączny czas blokowania witryny podczas testowania na przeciętnym sprzęcie mobilnym był krótszy niż 200 milisekund.

Szczegółowe informacje o tym, jak TBT strony wpływa na jej wynik skuteczności w Lighthouse, znajdziesz w artykule Jak Lighthouse określa wynik TBT.

Jak ulepszyć TBT

Ogólnie zalecamy optymalizację pod kątem INP zamiast TBT, ponieważ zalecamy używanie TBT jako przybliżonych wskaźników INP w laboratoriach (gdzie INP zazwyczaj nie można dokładnie zmierzyć). Aby poprawić jakość TBT, zapoznaj się z naszymi wskazówkami dotyczącymi optymalizowania wartości INP.

Jeśli interesuje Cię konkretnie TBT, możesz przeprowadzić audyt wydajności Lighthouse i zwrócić uwagę na konkretne możliwości, które zostaną wskazane.

Ogólnie rzecz biorąc, ulepszenie TBT w witrynie polega na zmniejszeniu liczby skryptów blokujących, co oznacza ich optymalizację w celu zmniejszenia ich liczby lub zmniejszenie ogólnej liczby skryptów. Zapoznaj się z tymi przewodnikami po skuteczności: