rustam_kuliev88
@rustam_kuliev88

Дебаг кода PHP чем?

Добрый день. Знаю что есть Xdebug, но интересует вот такой вопрос, если ли дебагер который работает напрямую с функциями и временем отработки запроса, чтобы постоянно не делать эксплейн к примеру, чтобы можно было видеть результат работы базы и скрипта, время его выполнения и что можно было бы улучшить или понять куда копать, к примеру убрать что то неиспользуемое из выборки в запросе, или же оптимизировать функцию которая жрет больше памяти и тп. буду благодарен - спасибо
  • Вопрос задан
  • 347 просмотров
Пригласить эксперта
Ответы на вопрос 3
Decadal
@Decadal
это называется профилированием
https://blackfire.io/docs/introduction
Ответ написан
@FanatPHP
Профайлеров, которые делают эксплейн SQL запросов в природе не существует.
"Неиспользуемое в выборке" не влияет на производительность SQL запросов
Волшебных палочек, которые говорят тебе "вот в этой функции лишнее потребление памяти" в природе не существует.

А в остальном коллега прав - нахождение узких мест в коде называется профилированием.

Во всех современных фреймворках есть прекрасный встроенный профайлер, который делает именно то что тебе надо показывает время исполнения всех участвов кода и всех запросов. Например https://symfony.com/doc/current/profiler.html

В частности, он показывает список всех использованных на странице запросов, который можно отсортировать по времени выполнения, и прямо из списка выполнить эксплейн. Я пользуюсь постоянно, именно чтобы найти узкие места.
Ответ написан
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
https://blackfire.io/docs/introduction

Не знал спасибо, жаль что платная, а так вещь мощная, может быть есть что то из опен сурс бесплатного ?

там есть бесплатные лимиты, достаточно чтобы использовать иногда для себя.

Xdebug умеет делать такой же профайлинг, но не так удобно парсит конечно и выводит как blackfire.
xdebug profile в гугле + qcachegrind/kcachegrind

в целом вам ничего не нужно из этого если всё работает, умещается в память и выполняется адекватное количество времени. А то попахивает преждевременной оптимизацией.
Потому что профайлеры это уже когда совсем всё очень плохо и обычными методами(мозгами/парой таймеров в узких местах) это не выявить уже. Т.е. они нужны для реально редко когда надо уже оптимизировать какие-то десятки-сотни миллисекунд. Во всех остальных случаях должно быть очевидно где у вас в коде говно которое несколько секунд или больше выполняется или жрёт память как не в себя и падает от нехватки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Digital Clouds Новосибирск
от 60 000 руб.
АКМЭ сервис Санкт-Петербург
от 100 000 руб.
UGOL Санкт-Петербург
от 150 000 руб.