Całkowity czas blokowania (TBT)

Data publikacji: 7 listopada 2019 r., ostatnia aktualizacja: 15 października 2025 r.

Co to jest TBT?

Wskaźnik całkowitego czasu blokowania (TBT) mierzy całkowity 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 osiągnięciu wartości Time to Interactive (TTI), podobnie jak niektóre inne narzędzia laboratoryjne, które mierzą czas wczytywania strony. Zobacz Jak TBT ma się do TTI?.

Wątek główny jest uznawany za „zablokowany”, gdy występuje długie zadanie, czyli zadanie, które działa w wątku głównym przez ponad 50 milisekund. Mówimy, że wątek główny jest „zablokowany”, ponieważ przeglądarka nie może przerwać trwającego zadania. Jeśli użytkownik wykona działanie na stronie w trakcie długiego zadania, przeglądarka musi poczekać na jego zakończenie, zanim będzie mogła zareagować.

Jeśli zadanie trwa wystarczająco długo (ponad 50 milisekund), użytkownik prawdopodobnie zauważy opóźnienie i uzna stronę za powolną lub uszkodzoną.

Czas blokowania danego długiego zadania to czas jego trwania powyżej 50 milisekund. Całkowity czas blokowania strony to suma czasów blokowania poszczególnych długich zadań, które występują po pierwszym wyrenderowaniu treści w mierzonym przedziale czasu (zwykle czas do interaktywności w przypadku narzędzi do wczytywania stron lub całkowity czas śledzenia w przypadku innych narzędzi).

Spójrz na przykład na ten diagram głównego wątku 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 obrazie zawiera 5 zadań, z których 3 to długie zadania, ponieważ ich czas trwania przekracza 50 milisekund. Na następnym diagramie widać czas blokowania poszczególnych długich zadań:

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

Całkowity czas wykonywania zadań w wątku głównym wynosi 560 ms, ale tylko 345 ms tego czasu jest uznawane za czas blokowania.

Czas trwania zadania (milisekundy) Czas blokowania zadania (w milisekundach)
Zadanie 1 250 200
Zadanie 2 90 40
Zadanie 3 35 0
Zadanie 4 30 0
Zadanie 5 155 105
Łączny czas blokowania 345 milisekund

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

TBT jest starszy niż INP i przydaje się jako wskaźnik problemów z INP, zwłaszcza w środowisku laboratoryjnym, w którym pomiar INP jest trudniejszy. TBT może jednak zgłaszać potencjalne problemy, które nie występują u użytkowników, jeśli w danym momencie nie wchodzą oni w interakcję ze stroną. Może też nie wykrywać problemów spowodowanych interakcjami, gdy są one mierzone w środowisku laboratoryjnym. Zalecamy pomiar INP w terenie jako miary rzeczywistych problemów z reaktywnością, z którymi spotykają się użytkownicy. TBT może być w laboratorium rozsądną wartością zastępczą dla INP, ale nie jest zamiennikiem INP.

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

Wartość TBT jest mierzona w określonym czasie. W przypadku niektórych narzędzi laboratoryjnych, które tradycyjnie mierzą ładowanie stron, w tym Lighthouse, TBT jest mierzony do momentu TTI, ponieważ pomaga określić, jak długo nieinteraktywna jest strona, zanim znowu stanie się interaktywna w stopniu funkcjonalnym. Jednak TBT może być mierzony również po wczytaniu strony, a więc po TTI, np. w trybie przedziału czasu Lighthouse.

TTI uznaje stronę za „niezawodnie interaktywną”, jeśli wątek główny jest wolny od długich zadań przez co najmniej 5 sekund. Oznacza to, że 3 zadania trwające 51 ms rozłożone w czasie na 10 sekund mogą opóźnić TTI w takim samym stopniu jak jedno zadanie trwające 10 sekund. Jednak te 2 scenariusze będą się bardzo różnić dla użytkownika, który próbuje wejść w interakcję ze stroną.

W pierwszym przypadku 3 zadania po 51 ms miałyby TBT wynoszący 3 milisekundy. Pojedyncze zadanie trwające 10 sekund miałoby TBT wynoszący 9950 milisekund. 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. Dzieje się tak nawet wtedy, gdy TTI jest używany jako punkt końcowy TBT.

Jak mierzyć TBT

TBT to dane, które należy mierzyć w warunkach laboratoryjnych. Najlepszym sposobem na pomiar TBT jest przeprowadzenie w witrynie audytu skuteczności za pomocą narzędzia Lighthouse. Szczegółowe informacje o korzystaniu z tego narzędzia znajdziesz w dokumentacji Lighthouse na temat TBT.

Wartość TBT można mierzyć w warunkach rzeczywistych, ale nie zalecamy tego, ponieważ interakcje użytkowników mogą wpływać na TBT strony w sposób, który prowadzi do dużych różnic w raportach. Jeśli chcesz wyjść poza pojedynczą interakcję INP, zalecamy zapoznanie się z nowszym interfejsem Long Animations Frame API.

Narzędzia laboratoryjne

Jaki jest dobry wynik TBT?

Aby zadbać o wygodę użytkowników, witryny powinny mieć całkowity czas blokowania krótszy niż 200 milisekund podczas testowania na przeciętnym sprzęcie mobilnym.

Więcej informacji o tym, jak TBT strony wpływa na wynik skuteczności w Lighthouse, znajdziesz w artykule Jak Lighthouse określa wynik TBT.

Jak poprawić TBT

Ogólnie zalecamy optymalizację pod kątem INP zamiast TBT, ponieważ TBT jest wskaźnikiem zastępczym dla INP w warunkach laboratoryjnych (gdzie INP zwykle nie można dokładnie zmierzyć). Aby poprawić TBT, zapoznaj się z naszymi wskazówkami dotyczącymi optymalizacji INP.

Jeśli chcesz sprawdzić TBT, możesz przeprowadzić audyt wydajności w Lighthouse i zwrócić uwagę na konkretne możliwości, które sugeruje audyt.

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