Оценка качества работы скрипта

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 17 ноя 2011.

Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Здравствуйте.
    Подскажите, пожалуйста, какие есть средства для сравнения скорости работы скриптов, а также их ресурсопотребления. Интерсуют параметры:
    1. Нагрузка на ЦП
    2. Объём потребляемой памяти
    3. Время выполнения скрипта (спорный пункт, см. ниже)

    ОС сервера: Ubuntu 11.04
    P.S.
    Считаете ли Вы время работы скрипта правильным критерием оценки качества скрипта?

    P.P.S.
    Поделитесь, пожалуйста, своим опытом оценки качества РНР скрипта.
     
  2. java3000

    java3000 Постоялец

    Регистр.:
    3 апр 2008
    Сообщения:
    54
    Симпатии:
    15
    каноничное- Ln(O)
    практичное- профайлер xdebug'а
    общее- любой другой "профайлер" и он же profiler
    Что легко гуглится...
     
  3. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    Если задача скрипта выполнятся за определённое время, а он выполняется дольше, то да.

    В php есть стандартные функции замера используемой памяти (в данный момент и в пике). Используя функцию microtime http://ru.php.net/manual/en/function.microtime.php можно вычислить время выполнения той или иной части скрипта.

    Как выше отметили, используя расширение php xdebug можно более подробно и исчерпывающе провести профайлинг и посмотреть дерево вызовов функций и методов.
     
  4. Soul :)

    Soul :) Постоялец

    Регистр.:
    22 мар 2007
    Сообщения:
    86
    Симпатии:
    9
    А еще можно положить на сервер и натравить на скрипт чего-нибудь типа ab (apache benchmark).
     
  5. SergXP

    SergXP Постоялец

    Регистр.:
    8 мар 2008
    Сообщения:
    66
    Симпатии:
    11
    ab ошибается при тестировании.. данная утилита позволяет примерно оценивать, сколько может выдержать конкретная страница интернет-проекта.

    время генерации и память можно отслеживать к примеру так:
    PHP:
    $time_start microtime(true);

    /*
    * тут ваш код
    */

    $time_end microtime(true);
    $time substr($time_end $time_start08) . ' sec';

    $memory     = (!function_exists('memory_get_usage')) ? '' round(memory_get_usage()/1024/10242) . 'MB';

    echo 
    '<p style="text-align: center"><a href="http://">STAT</a>: ' $memory ' / ' $time '</p>';
    результат например будет такой)
    STAT: 0.45MB / 0.009845 sec
    в моем примере страница сгенерировалась за 9,84 миллисекунды..

    можно отслеживать, какие файлы подключены:
    PHP:
    echo get_included_files();
    а вообще да, пользуйтесь xdebug, почитайте про unit-тестирование)