Профилировщик PHP для живой системы сверху Apache

Число 1000 состоит из четырех цифр, поэтому для его печати требуется четыре символа. Четыре символа плюс перевод строки - пять символов.

6
задан The Unknown 9 June 2009 в 19:51
поделиться

6 ответов

Вы можете использовать xdebug - после установки вы можете активировать профилирование запросов различными способами, и вы получите профиль формата valgrind для каждого запроса. Загрузите это в WinCacheGrind , KCacheGrind или аналогичный и найдите, на что тратится все время!

alt text

8
ответ дан 8 December 2019 в 13:01
поделиться

, если у вас есть очень целевая область, на которую стоит обратить внимание, вы можете попробовать разбросать их вокруг своего кода:

$f_timeStart=microtime(true);
$f_timeLast=$f_timeStart;


error_log(sprintf("%'08.5f",(microtime(true)-$f_timeLast)).' - '.sprintf("%'05.2f",(microtime(true)-$f_timeStart)).' secs - '.'01 before xyz()'."\n", 3, '/var/tmp/my-errors.log');
$f_timeLast=microtime(true);
xyz();
error_log(sprintf("%'08.5f",(microtime(true)-$f_timeLast)).' - '.sprintf("%'05.2f",(microtime(true)-$f_timeStart)).' secs - '.'01 after xyz()'."\n", 3, '/var/tmp/my-errors.log');
$f_timeLast=microtime(true);
1
ответ дан 8 December 2019 в 13:01
поделиться

Вы можно использовать phpdebug для этой работы. Это расширение php.

0
ответ дан 8 December 2019 в 13:01
поделиться

Попробуйте XDebug ( http://www.xdebug.org/ ), вы можете запустить его с помощью параметра get во время сеанса отладки. Это создаст файлы cachegrind, которые вы можете проверить в KCacheGrind или WinCacheGrind (первый вариант намного лучше) ...

4
ответ дан 8 December 2019 в 13:01
поделиться

Я бы посоветовал не создавать свой собственный профайлер. В свободном доступе есть несколько превосходных профилировщиков, которые предоставят вам подробную информацию и простоту использования. Я думаю, что ваше лучшее вложение времени - это следующая комбинация. Мы используем это в компании, занимающейся веб-разработкой, в которой я работаю, и очень им довольны:

  1. Zend Server стек php:
    Вы можете использовать бесплатную версию Community Edition и выбирать, какие части стека вы хотите установить. Мы установили только часть PHP и полагаемся на Apache и MySQL из дистрибутива Linux. Zend Server предоставляет расширение отладчика, оптимизатор кода (для небольшого увеличения скорости), кеш байт-кода (для значительного увеличения скорости) и красивый графический интерфейс для управления настройками PHP. В коммерческой версии есть гораздо больше. Установка в Linux проста с помощью пакетов RPM или DEB.

  2. Для использования расширения Debugger вам потребуется IDE:
    Установите Zend Studio , которая представляет собой отличную среду разработки PHP (см. Страницу функций), которая упрощает отладку и профилирование. Нет необходимости создавать файлы cachegrind или другие многоступенчатые процессы, просто нажмите «Профиль» на панели инструментов Firefox, и Studio начнет профилирование этой страницы. Детализация и простота использования огромны.

Возможно, я говорю как продавец Zend, и, возможно, это звучит больше, чем вам нужно, но я просто разработчик PHP, который очень доволен инструментами, которые он использует. Я думаю, что пришло время начать использовать Studio, но комбинация делает его отличным, и Server даже немного ускорит ваш рабочий сервер. На мой взгляд, эта комбинация - просто лучшая среда разработки PHP, доступная в настоящее время. Посмотрите демонстрационные видео . Есть еще одно о профилировании.

0
ответ дан 8 December 2019 в 13:01
поделиться

Если вы работаете на OpenSolaris, подумайте о dtrace. Самое большое преимущество, наверное, в том, что вы можете прощупывать и другие слои, такие как Apache, Mysql. dtrace имеет низкие накладные расходы, и вы можете выборочно включить только те зонды, которые вы хотите контролировать.

.
0
ответ дан 8 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: