Подтвердить что ты не робот

Профилирование PHP-кода

Я хотел бы найти способ определить, как долго каждая функция в PHP и каждый файл в PHP запускается. У меня есть старое устаревшее PHP-приложение, в котором я пытаюсь найти "грубые пятна", и поэтому я хотел бы найти, какие подпрограммы и страницы занимают очень много времени, чтобы загрузить, объективно.

Есть ли какие-либо готовые инструменты, которые позволяют это, или я придерживаюсь с помощью microtime, и создаю свою собственную структуру профилирования?

4b9b3361

Ответ 1

На прошлой неделе я действительно немного оптимизировал работу. XDebug действительно способ пойти.

Просто включите его как расширение (по какой-то причине он не будет работать с ze_extension на моей машине Windows), настройте php.ini с помощью xdebug.profiler_enable_trigger = Вкл и вызовите обычные URL-адреса с помощью XDEBUG_PROFILE = 1 как get или переменную post для профилирования этого запроса. Там ничего проще!

Кроме того, я могу действительно рекомендовать webgrind, веб-сайт (php) google Summer Of Code, который может читать и анализировать ваш отладочный вывод файлы!

Ответ 2

Вот хороший совет.

Когда вы используете XDebug для профилирования своего PHP, настройте profiler_trigger и используйте это в букмаркете, чтобы запустить профайлер XDebug;)

javascript:if(document.URL.indexOf('XDEBUG_PROFILE')<1){var%20sep=document.URL.indexOf('?');sep%20=%20(sep<1)?'?':'&';window.location.href=document.URL+sep+'XDEBUG_PROFILE';}

Ответ 3

загляните в xdebug, что позволяет выполнить углубленное профилирование. И здесь объяснение о том, как использовать xdebug.

Xdebug Profiler - мощный инструмент что дает вам возможность анализировать ваш PHP-код и определить узких мест или, как правило, части вашего кода медленны и могут используйте ускорение скорости. Профайлер в Xdebug 2 выводит информацию профилирования в виде совместимого с кэшем файл.

Престижность SchizoDuckie для упоминания Webgrind. Это первое, что я слышал об этом. Очень полезно (+1).

В противном случае вы можете использовать kcachegrind для linux или его меньшей производной wincachegrind. Оба этих приложения будут читать выходные файлы профилировщика xdebug и суммировать их для удовольствия от просмотра.

Ответ 4

Я когда-то видел приставку для Zend Core. Выглядит неплохо, но на самом деле это стоит денег, я не знаю, была ли эта проблема для вас.

Ответ 5

XDebug хорош, но его не так просто использовать или настраивать IMO.

Профилировщик, встроенный в Zend Studio, очень прост в использовании. Вы просто нажали кнопку на панели инструментов браузера, а BAM - ваш профиль кода. возможно, не так сильно, как дамп CacheGrind, но он всегда был для меня достаточно хорошим.

Вам также нужно настроить платформу Zend, но это просто и бесплатно для разработки - вам все равно придется платить за лицензию Zend Studio.

Ответ 6

Функции профилирования xdebug довольно хороши. Если вы хотите сохранить результат в valgrind-формате, вы можете использовать что-то вроде KCachegrind или Wincachegrind для просмотра графа вызовов и, если вы являетесь визуальным человеком, легче справляйтесь с тем, что происходит.

Ответ 7

В дополнение к серьезным мощным средствам отладки в реальном времени, PhpED из NuSphere (www.nusphere.com) имеет встроенный профилировщик, который можно запускать одним щелчком мыши из среды IDE.

Ответ 8

Если вы устанавливаете расширение xdebug, вы можете настроить его для экспорта профилей запуска, которые вы можете прочитать в WinCacheGrind (в Windows). Я не могу вспомнить имя приложения, которое читает файлы в Linux.

Ответ 9

Самое простое решение - использовать Zend Profiler, вам не нужно использовать Zend Platform, вы можете запускать его прямо из своего браузера, он достаточно точен и имеет большинство функций, которые вам нужны, и он интегрирован в Zend Studio