Symfony

Wydajność i optymalizacja

Profiler, Blackfire, optymalizacja zapytań, lazy loading, eager loading, strategie cachowania

22 pytań z rozmów·
Senior
1

Jaki jest główny cel Symfony Profiler w cyklu programistycznym?

Odpowiedź

Symfony Profiler to narzędzie do debugowania, które zbiera szczegółowe informacje o każdym żądaniu HTTP: czas wykonania, zapytania SQL, zużycie pamięci, cache, events i więcej. Pomaga zidentyfikować wąskie gardła i analizować zachowanie aplikacji bez modyfikowania kodu. W przeciwieństwie do tradycyjnych logów oferuje interaktywny interfejs graficzny dostępny przez Web Debug Toolbar.

2

Czym Blackfire różni się od Symfony Profiler w analizie wydajności?

Odpowiedź

Blackfire to profiler aplikacji PHP, który przeprowadza dogłębną analizę kodu na poziomie funkcja po funkcji, z call graphs, porównaniami profili i wykrywaniem regresji. W przeciwieństwie do Symfony Profiler, który daje przegląd na żądanie, Blackfire śledzi pełne wykonanie kodu z metrykami CPU, pamięci i I/O przy każdym wywołaniu funkcji. Umożliwia również porównywanie wydajności między różnymi wersjami kodu.

3

Jaka jest różnica między lazy loading a eager loading w Doctrine ORM?

Odpowiedź

Lazy loading ładuje relacje tylko wtedy, gdy są faktycznie używane w kodzie, co zmniejsza początkowe obciążenie, ale może powodować problem N+1 z wieloma dodatkowymi zapytaniami. Eager loading ładuje relacje natychmiast wraz z głównym zapytaniem za pomocą JOIN, unikając dodatkowych zapytań, ale potencjalnie zwiększając ilość przesyłanych danych. Wybór zależy od tego, jak dane będą wykorzystywane.

4

Jak zidentyfikować i rozwiązać problem N+1 queries w Doctrine?

5

Jaką strategię cache'owania zastosować dla danych, które rzadko się zmieniają, ale są często odczytywane?

+19 pytań z rozmów

Opanuj Symfony na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo