У меня очень медленный вызов API для отдыха, который я пытаюсь оптимизировать. Возвращение занимает около 20-30 секунд. Я знаю, что большая часть работы происходит в функции под названием requestBase-> process (), но это вообще не проявляется, когда я использую webgrind для просмотра вывода. На первый взгляд, вывод в webgrind выглядит нормально, в списке есть много других функций, но столбец Total Inclusive Cost добавляет несколько десятков миллисекунд, и я не знаю, что это около 20 000 миллисекунд, которые, как я знаю, на самом деле требуется для завершения вызова.
Я включил шоу на 100% и отключил функцию «Скрыть функции PHP» в пользовательском интерфейсе webgrind.
Метод requestBase-> process () использует call_user_func_array () для вызова соответствующего API-интерфейса rest, который в этом случае является супер медленной рекурсивной функцией, которая снова не отображается в выходных данных webgrind.
Когда я включаю отладчик XDebug и перебираю код, я вижу медленные вызовы функций, но мне нужен отчет, который я могу категорически использовать, чтобы сказать: «это теперь на x миллисекунд быстрее», как только я изменил код, а не угадать, «ну, это немного быстрее», когда вы проходите через отладчик.
У кого-нибудь была такая проблема? Может call_user_func_array () сбросить профилировщик xdebug? Будем очень благодарны за любые предложения, будь то решение или способ отладки происходящего. Спасибо за прочтение.
Тоби
Задача ещё не решена.
Других решений пока нет …