Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Профайлинг php скрипта с использованием xDebug (Maus, оценка: 5)
Author Message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Thu Mar 09, 2006 12:41 pm (написано за 3 минуты 24 секунды)
   Post subject: Профайлинг php скрипта с использованием xDebug
Reply with quote

Дмитрий Котеров: полностью автоматическое решение для XDebug
(Комментарии по использованию - прямо в коде на английском. Вообще, надо сказать, что в профайлер по качеству просто отменный! Zend Studio нервно курит в углу.)
Code (php): скопировать код в буфер обмена
<?php
//
// This file allow to profile PHP code using XDebug profiler.
//
// Usage is simple:
// 0. Download XDebug DLL for your PHP version: http://www.xdebug.org/, then
//    add to php.ini:
//      zend_extension_ts="/usr/local/php/extensions/php_xdebug-2.0.0rc1-4.4.1.dll"
//      xdebug.profiler_enable_trigger=On
//      ; xdebug.profiler_output_name="pid" - for old xdebug versions - uncomment this line!
// 1. Copy current file somewhere (e.g. /usr/local/apache2/errors/xdebug.php).
// 2. Modify httpd.conf:
//      php_value auto_prepend_file /usr/local/apache2/errors/xdebug.php
// 3. Install WinCacheGrind (http://sourceforge.net/projects/wincachegrind/)
//
// To start profiling of ANY PHP script:
// 1. Open some script in the browser and append "?XDEBUG_PROFILE=1" to its URL.
// 2. "Save as..." window will open, you should choose "Open with application..."
//    and add association between cachegrind.out (*.out) and WinCacheGrind.
// 3. WinCacheGrind will be started, and you may watch profiling results in
//    superior interface! If you will not close WinCacheGrind, you may open more
//    and more profiling results in the same window (different tabs).
//

function __xdebug_profiler_helper()
{
    // Do we need to dump cachegrind.out?
    $profiling = isset (www.php.net/isset)($_GET['XDEBUG_PROFILE']);
    $outdir = ini_get (www.php.net/ini_get)('xdebug.trace_output_dir');
    if ($outdir) {
        if ($pid = @$_GET['XDEBUG_PID']) {
            $cachegrind = "cachegrind.out";
            $path = "$outdir/$cachegrind.$pid";
            header (www.php.net/header)("Content-type: application/octet-stream");
            header (www.php.net/header)("Content-disposition: attachment; filename=\"$cachegrind\"");
            ob_start (www.php.net/ob_start)('ob_gzhandler'); // great speedup!
            echo (www.php.net/echo) file_get_contents (www.php.net/file_get_contents)($path);
            unlink (www.php.net/unlink)($path);
            exit (www.php.net/exit)();
        }
    }

    // Drop "Save as" window if needed.
    if ($outdir && $profiling) {
        function __xdebug_profiler_saveas()
        {
            $pid = getmypid (www.php.net/getmypid)();
            echo (www.php.net/echo) "<script language='JavaScript'>setTimeout(function() { document.location = '?XDEBUG_PID=$pid' }, 100)</script>";
        }
        register_shutdown_function (www.php.net/register_shutdown_function)('__xdebug_profiler_saveas');
    }
}

__xdebug_profiler_helper();
?>
Maus: ручная инсталляция с разъяснениями

// Собственно, вся информация есть на xdebug.org- здесь по-русски, для PHP4 в составе Денвера под WinXP и частично.
Итак, есть библиотека xDebug (xdebug.org/), разработчиком которой является Дерик Ретанс (Derick Rethans, www.derickrethans.nl/ ). Здесь рассматривается только версия 2.0 - так как под Windows по умолчанию скачивается именно она. На текущий момент доступна 2.0.0beta5.

1) скачиваем библиотеку с оф.сайта, кладем куда-нибудь (я переименовал в php_xdebug.dll и положил в /usr/local/php/extensions , чтоб не мучаться с путями)
2) добавляем в php.ini строчки:
Code (Windows INI file): скопировать код в буфер обмена
; Эту строчку разместил после всех extension =
; чтобы при необходимости без труда найти
; при размещении  в произвольной папке может потребоваться указать полный путь
zend_extension_ts=php_xdebug.dll

; Эти строчки разместил в секции [Debugger] - тоже только для удобства
xdebug.profiler_enable = 1 ; 0 - для отключения профайлинга
; папка для результатов профайлинга
; при отсуствующей опции у меня подставилось /tmp
; если папки не существует, автоматом она не создастся и результатов
; Вы не получите
xdebug.profiler_output_dir = /tmp/xdebug
Перезапускаем Денвер, убеждаемся через phpinfo(), что все подключилось. Для просмотра результатов профайлинга автор рекомендует использовать WinCacheGrind (sourceforge.net/projects/wincachegrind) - это windows-аналог некой KDE-шной утилиты. Бесплатно, распространяется под GNU GPL v.2
Как она показывает результат профайлинга - см.скриншот. Прочерки - у функций, исполнение которых заняло менее 1мс. Из вывода их можно скрыть фильтром.

Замечания:
1) профилируется любой скрипт при включенной опции xdebug.profiler_enable в php.ini . Для отключения переключаете в 0 и рестартуете Денвер. В xdebug версии 1.3 профайлинг включался вручную, теперь это не поддерживается: по словам автора,
Quote:
это работало слишком медленно



dklab_060309_xdebug.png
 Description:
Просмотр результатов профилирования в WinCacheGrind
 Filesize:  37.83 KB
 Viewed:  2782 Time(s)

dklab_060309_xdebug.png
Щелкните, чтобы посмотреть полноразмерное изображение.



Back to top
View user's profile Send private message
ilich
Guest





Карма: 386
   поощрить/наказать


PostPosted: Thu Mar 09, 2006 3:07 pm (спустя 2 часа 25 минут; написано за 2 минуты 6 секунд)
   Post subject: Re: Профайлинг php скрипта с использованием xDebug
Reply with quote

Maus wrote:
2) добавляем в php.ini строчки:
Code (Windows INI file): скопировать код в буфер обмена
у меня заработало после изменения zend_extension_ts на extension (версия php 4.4.0)
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Thu Mar 09, 2006 3:14 pm (спустя 6 минут; написано за 1 минуту 10 секунд)
   Post subject:
Reply with quote

ilich
Оригинально, строчка-то взята с оф.сайта.
у меня заработало сразу (PHP 4.4.3-dev, билд Feb 10 2006 14:13:29)
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Thu Mar 09, 2006 6:09 pm (спустя 2 часа 55 минут; написано за 1 минуту 23 секунды)
   Post subject:
Reply with quote

Еще замечание:
2) xDebug, похоже, подменяет собой стандартный анализатор ошибок - потому как я внезапно стал наблюдать вместо обычных нотисов вот такие оригинальные таблички (см. скриншот)
Использованный код:
Code (php): скопировать код в буфер обмена
<?php
function tst()
{
    $a = jamm();
    return $a>2 ? 'A' : 'B';
}
function jamm () {
    echo (www.php.net/echo) $i;
        return false;
}
$w = tst();
$str = mysql_fetch_assoc (www.php.net/mysql_fetch_assoc)($w);
if (5>4) trigger_error (www.php.net/trigger_error)('kaboom!', E_USER_ERROR);
?>



dklab_060309_xdebug2.png
 Description:
XDebug не просто сообщает об ошибке, но и выдает стек вызовов
 Filesize:  16.34 KB
 Viewed:  1140 Time(s)

dklab_060309_xdebug2.png
Щелкните, чтобы посмотреть полноразмерное изображение.



Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Thu Nov 02, 2006 12:37 am (спустя 7 месяцев 23 дня 6 часов 27 минут; написано за 2 минуты 27 секунд)
   Post subject:
Reply with quote

Я решил все-таки изменить первый пост данного топика, а не писать новый, чтобы автоматическое решение было сразу на виду.

Замечу, что XDebug, похоже, в настоящий момент единственный работающий профайлер из бесплатных (в DBG профайлер есть только в платной версии, а ZendStudio еще более платна, к тому же там профайлер жуть как неудобный). К тому же он по качеству тоже самый лучший из тех, что я пробовал.
Back to top
View user's profile Send private message Send e-mail
Kupuyc
Участник форума



Joined: 31 Mar 2006
Posts: 146
Карма: 5
   поощрить/наказать


PostPosted: Sun Nov 05, 2006 2:40 pm (спустя 3 дня 14 часов 2 минуты; написано за 2 минуты 5 секунд)
   Post subject:
Reply with quote

Доброго времени суток. Господа, а никто не сталкивался с неудобством ввиду подмены библиотекой работы var_dump? Теперь когда выводишь ее содержимое в файл (или в pre) рассмотреть дамп переменной чрезвычайно трудно. Поглядел в доках библиотеки и не нашел способа изменить это поведение на обычное...
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Mon Nov 06, 2006 12:04 am (спустя 9 часов 23 минуты; написано за 44 секунды)
   Post subject:
Reply with quote

Ищите вот тут: www.xdebug.org/docs-settings.php#debugger
www.google.ru/search?hs=Hlo&hl=ru&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&q=xdebug+var_dump+disable&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=
Наверняка должна быть настройка соответствующая.

Попробуйте еще:
ini_set('html_errors', '0');
Back to top
View user's profile Send private message Send e-mail
Kupuyc
Участник форума



Joined: 31 Mar 2006
Posts: 146
Карма: 5
   поощрить/наказать


PostPosted: Mon Nov 06, 2006 5:01 pm (спустя 16 часов 57 минут; написано за 44 секунды)
   Post subject:
Reply with quote

Да, html_errors пожалуй решение, хоть и не полностью - фича описанная Maus также перестает функционировать. Впрочем это все же выход, благодарю.
Back to top
View user's profile Send private message
Guest






Карма: 386
   поощрить/наказать


PostPosted: Wed Dec 06, 2006 1:24 am (спустя 29 дней 8 часов 22 минуты; написано за 2 минуты 30 секунд)
   Post subject:
Reply with quote

Доброго времени суток всем. Господа кто знает почему php ругается на то что функции не существуют xdebug_memory_usage() и xdebug_peak_memory_usage(), в то время как в документации они упомянуты. В чем проблема я чегото не допонял или в документации что-то попутали. Использую последний базовый пакет денвера с php 5,1,6 и xdebug2. Зарание спасибо.
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Wed Dec 06, 2006 2:06 pm (спустя 12 часов 42 минуты; написано за 1 минуту 39 секунд)
   Post subject:
Reply with quote

Гость
что-то мне подсказывает, что эти функции есть только в случае, если есть функции memory_get_usage() / memory_get_peak_usage() , а официальные бинарники под Windows собираются без них
Back to top
View user's profile Send private message
Guest






Карма: 386
   поощрить/наказать


PostPosted: Wed Dec 06, 2006 7:58 pm (спустя 5 часов 51 минуту; написано за 22 секунды)
   Post subject:
Reply with quote

#maus
похоже так и есть :/ спасибо за отклик.
Back to top
elpaso
Заглянувший



Joined: 05 Jan 2007
Posts: 17
Карма: 3
   поощрить/наказать


PostPosted: Mon Apr 30, 2007 11:10 am (спустя 4 месяца 23 дня 15 часов 12 минут; написано за 1 минуту 25 секунд)
   Post subject:
Reply with quote

Всем привет
Заинтересовался xDebug, но сразу он у меня не заработал
Чтобы в будущем вы не наступали на грабли как я, проверьте установлен ли у вас zend optimizer
с ним в паре xDebug не работает, так что его нада отключать
Back to top
View user's profile Send private message
jonjonson
Участник форума
Banned


Joined: 16 Sep 2004
Posts: 88
Карма: 0
   поощрить/наказать


PostPosted: Thu Sep 20, 2007 3:34 am (спустя 4 месяца 19 дней 16 часов 23 минуты; написано за 4 минуты 21 секунду)
   Post subject:
Reply with quote

Kupuyc wrote:
Доброго времени суток. Господа, а никто не сталкивался с неудобством ввиду подмены библиотекой работы var_dump? Теперь когда выводишь ее содержимое в файл (или в pre) рассмотреть дамп переменной чрезвычайно трудно. Поглядел в доках библиотеки и не нашел способа изменить это поведение на обычное...
В принципе поведение можно исправить написанием обёртки :)
Code (php): скопировать код в буфер обмена
function getStripTagedVarDump($var)
{
    ob_start (www.php.net/ob_start)();
    var_dump (www.php.net/var_dump)($var);
    $a = ob_get_contents (www.php.net/ob_get_contents)();
    ob_end_clean (www.php.net/ob_end_clean)();
    return strip_tags (www.php.net/strip_tags)($a);
}
//
echo (www.php.net/echo) "<pre>";
echo (www.php.net/echo) getStripTagedVarDump($GLOBALS);
echo (www.php.net/echo) "</pre>";
Для var_dump() в xdebug есть три ограничения www.xdebug.org/docs/display
Выключение ограничений осуществляется в настройках php.ini так:
Code (Windows INI file): скопировать код в буфер обмена
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1
Back to top
View user's profile Send private message
Yaroslav Vorozhko
Guest





Карма: 386
   поощрить/наказать


PostPosted: Mon Oct 08, 2007 5:43 pm (спустя 18 дней 14 часов 8 минут; написано за 1 минуту 40 секунд)
   Post subject: Немогу запустить Wincachegrind с xdebug
Reply with quote

Помогите решить проблему. Немогу запустить Wincachegrind с xdebug.
Wincachegrind пишет error 21.
А внутри файла, следующие ошибки
Code (html): скопировать код в буфер обмена
<br (december.com/html/4/element/br.html) /> (december.com/html/4/element/.html)
<font (december.com/html/4/element/font.html) size='1'> (december.com/html/4/element/.html)<table (december.com/html/4/element/table.html) border='1' cellspacing='0' cellpadding='1'> (december.com/html/4/element/.html)
<tr> (december.com/html/4/element/tr.html)<th (december.com/html/4/element/th.html) align='left' bgcolor='#f57900' colspan="5"> (december.com/html/4/element/.html)<span (december.com/html/4/element/span.html) style='background-color: #cc0000; color: #fce94f; font-size: x-large;'> (december.com/html/4/element/.html)( ! )</span> Warning: file_get_contents(/tmp/cachegrind.out.3560) [<a (december.com/html/4/element/a.html) href='function.file-get-contents'> (december.com/html/4/element/.html)function.file-get-contents</a>]: failed to open stream: No such file or directory in C:\var\www\xdebug.php on line <i> (december.com/html/4/element/i.html)37</i></th></tr>
<tr> (december.com/html/4/element/tr.html)<th (december.com/html/4/element/th.html) align='left' bgcolor='#e9b96e' colspan='5'> (december.com/html/4/element/.html)Call Stack</th></tr>
<tr> (december.com/html/4/element/tr.html)<th (december.com/html/4/element/th.html) align='center' bgcolor='#eeeeec'> (december.com/html/4/element/.html)#</th><th (december.com/html/4/element/th.html) align='left' bgcolor='#eeeeec'> (december.com/html/4/element/.html)Time</th><th (december.com/html/4/element/th.html) align='left' bgcolor='#eeeeec'> (december.com/html/4/element/.html)Memory</th><th (december.com/html/4/element/th.html) align='left' bgcolor='#eeeeec'> (december.com/html/4/element/.html)Function</th><th (december.com/html/4/element/th.html) align='left' bgcolor='#eeeeec'> (december.com/html/4/element/.html)Location</th></tr>
<tr> (december.com/html/4/element/tr.html)<td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)1</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)0.0008</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='right'> (december.com/html/4/element/.html)66704</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec'> (december.com/html/4/element/.html){main}(  )</td><td (december.com/html/4/element/td.html) title='C:\var\www\xdebug.php' bgcolor='#eeeeec'> (december.com/html/4/element/.html)..(null)<b> (december.com/html/4/element/b.html):</b>0</td></tr>
<tr> (december.com/html/4/element/tr.html)<td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)2</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)0.0008</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='right'> (december.com/html/4/element/.html)66704</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec'> (december.com/html/4/element/.html)__xdebug_profiler_helper(  )</td><td (december.com/html/4/element/td.html) title='C:\var\www\xdebug.php' bgcolor='#eeeeec'> (december.com/html/4/element/.html)..(null)<b> (december.com/html/4/element/b.html):</b>54</td></tr>
<tr> (december.com/html/4/element/tr.html)<td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)3</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)0.0010</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='right'> (december.com/html/4/element/.html)109072</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec'> (december.com/html/4/element/.html)<a (december.com/html/4/element/a.html) href='http://www.php.net/file_get_contents' target='_new'> (december.com/html/4/element/.html)file_get_contents</a>
(  )</td><td (december.com/html/4/element/td.html) title='C:\var\www\xdebug.php' bgcolor='#eeeeec'> (december.com/html/4/element/.html)..(null)<b> (december.com/html/4/element/b.html):</b>37</td></tr>
</table></font>
<br (december.com/html/4/element/br.html) /> (december.com/html/4/element/.html)
<font (december.com/html/4/element/font.html) size='1'> (december.com/html/4/element/.html)<table (december.com/html/4/element/table.html) border='1' cellspacing='0' cellpadding='1'> (december.com/html/4/element/.html)
<tr> (december.com/html/4/element/tr.html)<th (december.com/html/4/element/th.html) align='left' bgcolor='#f57900' colspan="5"> (december.com/html/4/element/.html)<span (december.com/html/4/element/span.html) style='background-color: #cc0000; color: #fce94f; font-size: x-large;'> (december.com/html/4/element/.html)( ! )</span> Warning: unlink(/tmp/cachegrind.out.3560) [<a (december.com/html/4/element/a.html) href='function.unlink'> (december.com/html/4/element/.html)function.unlink</a>]: No such file or directory in C:\var\www\xdebug.php on line <i> (december.com/html/4/element/i.html)38</i></th></tr>
<tr> (december.com/html/4/element/tr.html)<th (december.com/html/4/element/th.html) align='left' bgcolor='#e9b96e' colspan='5'> (december.com/html/4/element/.html)Call Stack</th></tr>
<tr> (december.com/html/4/element/tr.html)<th (december.com/html/4/element/th.html) align='center' bgcolor='#eeeeec'> (december.com/html/4/element/.html)#</th><th (december.com/html/4/element/th.html) align='left' bgcolor='#eeeeec'> (december.com/html/4/element/.html)Time</th><th (december.com/html/4/element/th.html) align='left' bgcolor='#eeeeec'> (december.com/html/4/element/.html)Memory</th><th (december.com/html/4/element/th.html) align='left' bgcolor='#eeeeec'> (december.com/html/4/element/.html)Function</th><th (december.com/html/4/element/th.html) align='left' bgcolor='#eeeeec'> (december.com/html/4/element/.html)Location</th></tr>
<tr> (december.com/html/4/element/tr.html)<td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)1</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)0.0008</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='right'> (december.com/html/4/element/.html)66704</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec'> (december.com/html/4/element/.html){main}(  )</td><td (december.com/html/4/element/td.html) title='C:\var\www\xdebug.php' bgcolor='#eeeeec'> (december.com/html/4/element/.html)..(null)<b> (december.com/html/4/element/b.html):</b>0</td></tr>
<tr> (december.com/html/4/element/tr.html)<td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)2</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)0.0008</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='right'> (december.com/html/4/element/.html)66704</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec'> (december.com/html/4/element/.html)__xdebug_profiler_helper(  )</td><td (december.com/html/4/element/td.html) title='C:\var\www\xdebug.php' bgcolor='#eeeeec'> (december.com/html/4/element/.html)..(null)<b> (december.com/html/4/element/b.html):</b>54</td></tr>
<tr> (december.com/html/4/element/tr.html)<td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)3</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='center'> (december.com/html/4/element/.html)0.0012</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec' align='right'> (december.com/html/4/element/.html)109624</td><td (december.com/html/4/element/td.html) bgcolor='#eeeeec'> (december.com/html/4/element/.html)<a (december.com/html/4/element/a.html) href='http://www.php.net/unlink' target='_new'> (december.com/html/4/element/.html)unlink</a>
(  )</td><td (december.com/html/4/element/td.html) title='C:\var\www\xdebug.php' bgcolor='#eeeeec'> (december.com/html/4/element/.html)..(null)<b> (december.com/html/4/element/b.html):</b>38</td></tr>
</table></font>
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Oct 09, 2007 7:22 pm (спустя 1 день 1 час 38 минут; написано за 1 минуту 19 секунд)
   Post subject:
Reply with quote

Yaroslav Vorozhko
И каковы же Ваши предположения по поводу случившегося? (Я вот по тексту вижу вполне осмысленные сообщения об ошибках. Но не вижу, что Вам помешало привести их в удобочитаемый вид)
Back to top
View user's profile Send private message
Умкус
Guest





Карма: 386
   поощрить/наказать


PostPosted: Mon Dec 03, 2007 1:23 pm (спустя 1 месяц 24 дня 18 часов 1 минуту; написано за 4 минуты 38 секунд)
   Post subject:
Reply with quote

Доброго дня, господа. Не получается уже несколько дней завести Xdebug. Вынужден прибегнуть к вашей помощи.
Пробовал разные настройки, впоследствии, для чистоты эксперимента, вернулся к заводским+.
В конец php.ini вставил:
Code (Windows INI file): скопировать код в буфер обмена
[xdebug]
zend_extension_ts="D:/wamp/php/ext/php_xdebug.dll"
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "D:/wamp/tmp/debug"
xdebug.trace_output_dir = "D:/wamp/tmp/debug" ; я на винде
получаю следующую ошибку:
Warning: unlink(D:/wamp/tmp/debug/cachegrind.out.752) [function.unlink]: Permission denied in D:\wamp\www\xdebug.php on line 41
Файл находится
Гугль не сильно радовал ответами. Буду благодарен за ответ.
Back to top
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 97
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Mon Dec 03, 2007 3:40 pm (спустя 2 часа 16 минут; написано за 1 минуту 43 секунды)
   Post subject:
Reply with quote

при чем тут гугль? вы читать и понимать сообщение пытались? у скрипта xdebug.php не хватает прав удалить файл D:/wamp/tmp/debug/cachegrind.out.752. Что тут непонятного?
Back to top
View user's profile Send private message
Guest






Карма: 386
   поощрить/наказать


PostPosted: Mon Dec 03, 2007 4:41 pm (спустя 1 час 1 минуту; написано за 1 минуту 13 секунд)
   Post subject:
Reply with quote

Правда? Я это понял, как только увидел сообщение.
Читать умею, с английским все в порядке. Ответ из разряда "Дядя у вас сломался автобус" :). Но всеж спасибо, как и обещалось.
Может не так вопрос поставил, попробую конкретно: какие могут быть проблемы с доступом в винде, и как их обойти конкретно в данной ситуации?
Перекинул папку в корень DocumentRoot'а, не помогло.
Заметил, что отказано в доступе на удаление файла именно с этим именем, то же файл, с измененным именем удаляется на ура. Апач перезагружается, генерируется новое имя... и т.д.
Вручную все перкрасно удаляется.
Back to top
Умкус
Guest





Карма: 386
   поощрить/наказать


PostPosted: Mon Dec 03, 2007 4:46 pm (спустя 5 минут; написано за 1 минуту 50 секунд)
   Post subject:
Reply with quote

Убрал auto_prepend_file и xdebug.php туда же. Сгенерированные файлы открываю вручную — по необходимости. Хватит и этого. Умолкаю.
Back to top
Guest






Карма: 386
   поощрить/наказать


PostPosted: Fri Feb 01, 2008 4:59 pm (спустя 1 месяц 29 дней 13 минут; написано за 1 минуту 8 секунд)
   Post subject:
Reply with quote

Quote:
Доброго времени суток всем. Господа кто знает почему php ругается на то что функции не существуют xdebug_memory_usage() и xdebug_peak_memory_usage(), в то время как в документации они упомянуты. В чем проблема я чегото не допонял или в документации что-то попутали. Использую последний базовый пакет денвера с php 5,1,6 и xdebug2. Зарание спасибо.
Посмотри, какие функции объявлены
Code (php): скопировать код в буфер обмена
<?php
echo (www.php.net/echo) '<pre>';
print_r (www.php.net/print_r)( get_defined_functions (www.php.net/get_defined_functions)() );
echo (www.php.net/echo) '</pre>';
?>
Back to top
stfalcon
Guest





Карма: 386
   поощрить/наказать


PostPosted: Thu Nov 06, 2008 9:05 am (спустя 9 месяцев 4 дня 16 часов 5 минут; написано за 37 секунд)
   Post subject:
Reply with quote

var_dump можно отключить установив в конфиге
xdebug.overload_var_dump=0
Back to top
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9995
   поощрить/наказать


PostPosted: Tue Nov 18, 2008 2:54 am (спустя 11 дней 17 часов 48 минут)
   Post subject:
Reply with quote


М

Ветка выделена в отдельную тему «я не знаю что такое профайлинг»,
расположенную в форуме Лень сходить в Поиск или почитать документацию (18 Ноября 2008, 02:54).
Back to top
View user's profile Send private message
Mindfinder
Заглянувший



Joined: 09 Jan 2010
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Sat Jan 09, 2010 2:50 pm (спустя 1 год 1 месяц 21 день 11 часов 55 минут; написано за 1 минуту 26 секунд)
   Post subject:
Reply with quote

У меня WinCacheGrind время выполнения делит на 10, т.е. в 10 раз меньше реального. Есть еще какие-нибудь бесплатные программы для просмотра профилей?
Back to top
View user's profile Send private message
Aggtaa
Guest





Карма: 386
   поощрить/наказать


PostPosted: Sat Mar 13, 2010 5:20 pm (спустя 2 месяца 4 дня 2 часа 30 минут; написано за 1 минуту 4 секунды)
   Post subject:
Reply with quote

Mindfinder wrote:
У меня WinCacheGrind время выполнения делит на 10, т.е. в 10 раз меньше реального. Есть еще какие-нибудь бесплатные программы для просмотра профилей?
WebGrind. Бесплатно, менее глючно и (мне) более удобно, чем WinCacheGrind. Если в папке с трейсами много файлов, то первый раз долго открывается. Потом все пучком
code.google.com/p/webgrind/
Back to top
Seneka
Заглянувший



Joined: 15 Aug 2010
Posts: 1
Карма: 0
   поощрить/наказать

Location: Москва

PostPosted: Sun Aug 15, 2010 4:19 pm (спустя 5 месяцев 1 день 22 часа 59 минут; написано за 39 секунд)
   Post subject:
Reply with quote

WebGrind - неудобно использовать, хотелось-бы какое-нибудь приложение под windows
Back to top
View user's profile Send private message
Corneliy
Заглянувший



Joined: 17 Dec 2010
Posts: 2
Карма: 0
   поощрить/наказать

Location: Россия

PostPosted: Fri Dec 17, 2010 2:35 pm (спустя 4 месяца 1 день 22 часа 16 минут; написано за 23 секунды)
   Post subject:
Reply with quote

А WinCacheGrin есть свежие версии, или на проект забили?
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Fri Dec 17, 2010 2:51 pm (спустя 15 минут; написано за 8 секунд)
   Post subject:
Reply with quote

Corneliy
а они нужны?
Back to top
View user's profile Send private message
dopos
Заглянувший



Joined: 12 Apr 2014
Posts: 4
Карма: 0
   поощрить/наказать


PostPosted: Tue Jun 17, 2014 1:50 pm (спустя 3 года 5 месяцев 30 дней 22 часа 59 минут; написано за 6 секунд)
   Post subject:
Reply with quote

Quote:
WebGrind (masterdle.ru/). Бесплатно (pshacks-crew.com/), менее (modasite.ru/) глючно (odnim-slovom-otvety.ru/) и (мне) более (tripmir.ru/) удобно (torrentnew.ru/), чем . Если (kredit-nalichnymi.net/) в папке (gegemon.net) с трейсами много (cats-xray.ru/) файлов (zonalady.ru/), то первый (www.rem-plast.spb.ru/) раз (mamont.me/) долго открывается (www.shahzodafanclub.ru/). Потом (www.kalinkashop.it/) все (www.rus-m.com/) пучком
да спасибо
Back to top
View user's profile Send private message
KoteProf
Заглянувший



Joined: 18 Jun 2014
Posts: 4
Карма: 1
   поощрить/наказать

Location: Киев

PostPosted: Sat Jun 21, 2014 1:43 pm (спустя 3 дня 23 часа 52 минуты; написано за 2 минуты 40 секунд)
   Post subject:
Reply with quote

elpaso wrote:
Всем привет видеооператор (katan-video.kiev.ua/)
Заинтересовался xDebug, но сразу он у меня не заработал
Чтобы в будущем вы не наступали на грабли как я, проверьте установлен ли у вас zend optimizer
с ним в паре xDebug не работает, так что его нада отключать
Да, у меня на хостинге он был просто отключён, хотя в списке присутствовал. Тоже намучилась из-за невнимательности... :)
Back to top
View user's profile Send private message
Munawar84
Заглянувший



Joined: 25 Nov 2016
Posts: 5
Карма: 0
   поощрить/наказать

Location: Dhaka

PostPosted: Fri Nov 25, 2016 10:01 pm (спустя 2 года 5 месяцев 4 дня 8 часов 17 минут; написано за 11 секунд)
   Post subject: fully automatic solution for the XDebug
Reply with quote

Good solution.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML