я использую qcachegrind
просмотреть журнал профиля, созданный Xdebug
, Я могу нормально просматривать файл, но понятия не имею, на что я смотрю.
Я пробовал Google, но я просто продолжаю получать руководства по установке, ничего о том, как понять дисплей.
(пожалуйста, откройте изображение в новой вкладке для лучшего просмотра)
Такие инструменты, как qcachegrind и kcachegrind, визуализируют вывод профилировщика PHP Xdebug. Выходные данные профилировщика — это практически журнал всех вызовов функций PHP с соответствующим временем запуска, временем выполнения и иерархией.
Типичный вид показан на следующем рисунке:
С левой стороны находится «Плоский профиль». В нем перечислены все отдельные вызовы функций от самых трудоемких до наименее трудоемких. «Вкл.» столбец показывает время, затраченное функцией, включая вызываемых абонентов. Столбец «Self» показывает время, потраченное функцией, исключая вызываемых абонентов. Столбцы «Вызывается» и «Функция» показывают соответственно количество вызовов функции и имя (плюс пространство имен) функции.
На правой стороне, различные представления доступны для визуализации звонящих и вызываемых абонентов. Вызывающие и вызывающие абоненты соответствуют функции, выбранной слева.
На моем скриншоте вверху открыта «Карта Калли». Каждый прямоугольник является вызовом функции в выбранной функции (вызываемый объект), а каждый прямоугольник внутри является вызываемым объектом вызываемого. Размер соответствует относительному ‘Incl’. время.
Внизу в представлении «Все посетители» отображаются вызываемые абоненты с выбранным порядком функций по любому выбранному вами свойству.
Более подробный вид показан ниже:
Это функция базы данных Laravel, отсортированная по времени «Self». Вы ясно видите, как соотносятся различные вызовы функций и какая функция занимает больше всего времени: PDOStatement :: execute. Это не удивительно, так как это функция, которая подключается к внешней базе данных, запрашивает ее и ожидает результата.
Вернуться к исходному скриншоту. Это говорит вам о том, что ваше приложение потратило много (много) времени в PHP session_start
функция. Это показывает 99,8% собственного времени.
Других решений пока нет …