Symfony

Продуктивність та оптимізація

Profiler, Blackfire, оптимізація запитів, lazy loading, eager loading, стратегії кешування

22 питань зі співбесід·
Senior
1

Яка основна мета Symfony Profiler у циклі розробки?

Відповідь

Symfony Profiler — це інструмент налагодження, який збирає детальну інформацію про кожен HTTP-запит: час виконання, SQL-запити, використання пам'яті, cache, events тощо. Він допомагає виявляти вузькі місця та аналізувати поведінку застосунку без зміни коду. На відміну від звичайних логів, він надає інтерактивний графічний інтерфейс, доступний через Web Debug Toolbar.

2

Чим Blackfire відрізняється від Symfony Profiler для аналізу продуктивності?

Відповідь

Blackfire — це профайлер PHP-застосунків, який виконує глибокий аналіз коду на рівні функцій, з call graphs, порівнянням профілів та виявленням регресій. На відміну від Symfony Profiler, який дає огляд для кожного запиту, Blackfire відстежує повне виконання коду з метриками CPU, пам'яті та I/O на кожному виклику функції. Він також дозволяє порівнювати продуктивність між різними версіями коду.

3

Яка різниця між lazy loading та eager loading у Doctrine ORM?

Відповідь

Lazy loading завантажує зв'язки лише тоді, коли до них дійсно звертаються в коді, що зменшує початкове навантаження, але може спричинити проблему N+1 з численними додатковими запитами. Eager loading завантажує зв'язки одразу разом з основним запитом через JOIN, уникаючи додаткових запитів, але потенційно збільшуючи обсяг переданих даних. Вибір залежить від того, як використовуватимуться дані.

4

Як виявити та вирішити проблему N+1 queries за допомогою Doctrine?

5

Яку стратегію кешування використовувати для даних, які рідко змінюються, але часто читаються?

+19 питань зі співбесід

Опануй Symfony для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно