Удаленная отладка и профилирование памяти в PHP

Два вопроса

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

Примечание. Я говорю о коде, который лежит на сервере удаленно.

Related of "Удаленная отладка и профилирование памяти в PHP"

Как и другие, Xdebug – ваш лучший выбор. Я просто позвоню здесь и упомянул пару профилировщиков. Если вы работаете в Linux, вы не ошибетесь с KCacheGrind, а в Windows это выглядит как WinCacheGrind . Я не знал, что опция удаленного профилирования является опцией, она выгружается в файл, к которому вам нужно будет иметь доступ. Хотя, похоже, вы уже привыкли к этому.

Komodo – довольно приятная среда IDE с поддержкой Xdebug (для отладки требуется платная версия), хотя нет причин не просто устанавливать Eclipse и забрать Zend PDT .

Мое предложение, программа на Python и быть более счастливым разработчиком (более дружественные для разработчиков модули / инструменты): P

Я думаю, что Xdebug – это то, что вы ищете. Если вы не против тратить деньги, Zend IDE для Eclipse поставляется с Zend Debugger, и он также неплохо работает.

Как сказал Бендер: XHProf [1]: http://pecl.php.net/package/xhprof [2]: http://mirror.facebook.net/facebook/xhprof/doc.html намного легче, чем XDebug и я предпочитайте его для получения профилирования информации о реальном сайте. Facebook использует его для профилирования своих живых серверов. Он имеет приятные функции, такие как объединение профилей и создание различий между ними, чтобы вы могли видеть регрессию в своем коде. Если вам нужен пошаговый отладчик, то XDebug – это ваш вызов. Просто имейте в виду, что XDebug на live-сайте, включенном по умолчанию, накладывает значительную деградацию производительности, а выходные файлы cachegrind, которые генерируют сайт, могут очень быстро заполнить диск.

Я предлагаю не использовать XDebug на живом сайте и при необходимости настраивать его для активации по запросу через триггер, как описано в документах http://xdebug.org/docs/

Настройте сервер, чтобы разрешить удаленную отладку XDebug и выбрать клиента, хотя это может быть немного связано с его настройкой. Я лично использовал Geben для emacs в качестве front-end для XDebug, но есть много вариантов.

Насколько вам разрешено устанавливать файлы на сервере Xdebug – это способ как для отладки, так и для профилирования.

Если вы на общем сервере забываете об этом (если вы не являетесь хорошим другом администратора сервера). Ваш лучший шанс – FirePHP – только для отладки. Вы можете также взглянуть на dBug ; это в основном препарированный var_dump, но ваши глаза будут благодарны за это.