ФорумПрограммированиеPHP для идиотов → Время выполнения скрипта, будь оно неладное

Время выполнения скрипта, будь оно неладное

  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 5 февраля 2010 г. 8:25

    Решил не никтопостить, а создать новую тему. А с хуяли, в старых все равно ответа не найдено, хотя вопрос у меня практически тот же что и у других… ебаный микротайм или как его тут ещё назовешь:

    // $accuracy - кол-во циферок в округлении результата.
    // $name_point - имя "засечки", указывается через атрибуты метода класса

    //засечка старта
    list($msec,$sec) = explode(' ',microtime());
    define('RUNTIME_'.$name_point,$sec+$msec);

    // засечка окончания + вывод на экран (у меня оно в массив закидывается)
    list($msec,$sec) = explode(' ',microtime());
    echo 'Сделано за: '.round($sec+$msec-constant('RUNTIME_'.$name_point), $accuracy).' секунд';

    Вот такое у меня есть. Про микротайм(тру) знаю. Не юзаю с целью разобраться что у меня не так. Так что умничать не надо… я и так из-за этой "задачки" чувствую себя "туговатым".

    Так вот фишка в чем:
    1. Ставлю старт на одном из участков скрипта.
    2. Ставлю точку "стоп" после определенных действий.
    3. Снова ставлю старт (с другим именем "засечки").
    4. Ещё одна засечка (можно и без неё, все равно "глюк" будет ловится).
    5. Стоп предыдущей "засечки"
    6. Стоп "засечки" с шага номер 3
    7. По сути тут уже идет вывод общего списка, но для отладки я сделал вывод после каждого "стопа"

    Вот первая "засечка" выводится нормально, а со второй траблы - выводится в формате "3.5E-5 секунд", "2.1E-5 секунд" и все такое :(

    В чем тут трабла и как её можно решить?

    п.с. И ещё, мне сказали, что с ПХП5 вроде как есть класс (встроенный) с функционалом по отладке работы скрипта, ну и там типа "скока памяти". "сколько времени" и т.д. можно получить. Слышали ли про такой класс?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 5 февраля 2010 г. 8:33, спустя 8 минут

    "3.5E-5 секунд", "2.1E-5 секунд"

    ахуеть проблема

    echo  'Сделано за: '.sprintf("%f",round($sec+$msec-constant('RUNTIME_'.$name_point), $accuracy)).' секунд';
    както так
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 5 февраля 2010 г. 8:54, спустя 21 минуту 6 секунд

    phpdude, мучас грациас!
    Я просто с "принтом" не очень дружил раньше. Теперь буду дружить.

    п.с. А вопрос относительно класса остался открытым.
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 5 февраля 2010 г. 8:54, спустя 18 секунд

    трабла с типами?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 5 февраля 2010 г. 8:58, спустя 3 минуты 53 секунды


    phpdude, мучас грациас!
    Я просто с "принтом" не очень дружил раньше. Теперь буду дружить.

    п.с. А вопрос относительно класса остался открытым.
    есть xdebug профилировщик - екстеншн, то что скажет тебе ОН, ты сам заебешься делать. лучше почитай про него
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 5 февраля 2010 г. 9:23, спустя 24 минуты 28 секунд

    CTAPbIu_MABP, да. Мне отдавал раунд то в нормальном виде, то в "научной нотации" какого-то хера :(

    phpdude, понял, спасибо. Буду смотреть что оно такое.
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 5 февраля 2010 г. 9:27, спустя 3 минуты 49 секунд

    Givi, кастуй на раунд дабл
    Спустя 21 сек.
    или точность задавай если можно
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 5 февраля 2010 г. 9:34, спустя 7 минут 23 секунды

    CTAPbIu_MABP, про раунд дабл не могу понять - что имеется ввиду?
    А про точность, то если ты про кол-во знаков, то оно передается в функцию (при том пробовал разное кол-во, а результат одинаковый) при каждом "стопе", все как и должно быть (да и дефолтное значение есть).
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 5 февраля 2010 г. 9:38, спустя 3 минуты 44 секунды

    Givi, я имел ввиду
    (double) round()
    но он и так дабл возвращает
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 5 февраля 2010 г. 9:52, спустя 14 минут 22 секунды

    CTAPbIu_MABP, понял, спасибо за попытку. Пока юзаю "мысль" Дуда, но буду смотреть на xdebug-екстеншн, может что-то полезное там есть.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 5 февраля 2010 г. 10:03, спустя 11 минут 20 секунд


    CTAPbIu_MABP, понял, спасибо за попытку. Пока юзаю "мысль" Дуда, но буду смотреть на xdebug-екстеншн, может что-то полезное там есть.
    есть там полезное ….
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!