@tgarl

Как получить трек вызовов методов и время их выполнения?

Есть скрипт, использует API битрикса, но сделан в виде своего класса. Выполняется долго, и я хочу понять какие методы вызываются и сколько выполняются. Как это можно сделать? Когда-то делал подобное, но никак не могу ни вспомнить, ни найти как такое сделать.

Bitrix\Main\Diag\SqlTracker не помогает, все вызовы меньше 0,Е-5
debug_backtrace() - тоже
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
это называется "профилирование". Такой функционал есть, например, в php расширении Xdebug
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Lastor
@Lastor
В чем сила, брат? В ньютонах.
Если предположить, что при вызове каждого метода происходит измерение времени начала, времени окончания и запись в лог, то единственное, что можно по нему определить - это глубину метода в стеке.
Целесообразно добавить функцию с логированием в те методы, которые в чем-то подозреваете.
А еще лучше посмотреть логи sql.
Ответ написан
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
PHP-SPX простой профайлер трейсер для PHP
https://habr.com/ru/articles/505192/

во Flame Graph можно изучить весь стек вызовов с потребляемыми ресурсами и временем исполнения
Ответ написан
@tgarl Автор вопроса
В общем подобью итог, не смог я трек вызовов собрать, но по другой задаче потребовалось собрать все вызовы событий и вот тут решилась и текущая задача. У event:: кроме send есть еще и дебагер свой и вот там вылезло событие модуля который давно не используется, но не удален, события этого модуля затрагивают изменение элементов, заказов и корзины и делает запрос к стороннему сервису, который недоступен. После зачистки сайт работать в 2 раза быстрее стал ну и мой класс тоже перестал тупить.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы