Wydajność aplikacji jest odczuwalna dla użytkownika, zanim stanie się widoczna w metrykach. Czas odpowiedzi, płynność interfejsu i zachowanie pod obciążeniem zależą od decyzji podejmowanych na wielu poziomach — od zapytań do bazy po sposób ładowania zasobów.
Teksty w tej kategorii dotyczą pomiaru wydajności, typowych wąskich gardeł i technik optymalizacji na froncie i backendzie.
Od czego zacząć pracę nad wydajnością?
Od pomiaru, nie od optymalizacji. Bez profilowania i metryk każda zmiana jest zgadywaniem — a intuicja w wydajności myli się wyjątkowo często, bo wąskie gardło rzadko leży tam, gdzie kod wygląda na wolny. Pomiar musi też odpowiadać temu, co czuje użytkownik: czas do pierwszej treści i reakcja interfejsu na dotyk mówią więcej niż średni czas odpowiedzi serwera.
Jakie decyzje wiążą się z optymalizacją?
Pierwsza: co jest celem — inna praca prowadzi do szybszego pierwszego wejścia, inna do płynności przy długiej sesji, jeszcze inna do przetrwania szczytu ruchu. Druga: gdzie zainwestować — cache, zapytania do bazy, rozmiar zasobów na froncie i architektura ładowania to cztery różne fronty o różnym koszcie wejścia. Trzecia: kiedy przestać — optymalizacja poniżej progu zauważalności to czas odebrany funkcjom, a kod po agresywnej optymalizacji bywa trudniejszy w utrzymaniu. Regresje wyłapuje się tanio tylko wtedy, gdy pomiar jest częścią procesu, a nie jednorazową akcją.