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

LEXAlForpostl

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

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

P.P.S.
Поделитесь, пожалуйста, своим опытом оценки качества РНР скрипта.
 
каноничное- Ln(O)
практичное- профайлер xdebug'а
общее- любой другой "профайлер" и он же profiler
Что легко гуглится...
 
Считаете ли Вы время работы скрипта правильным критерием оценки качества скрипта?
Если задача скрипта выполнятся за определённое время, а он выполняется дольше, то да.

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

Как выше отметили, используя расширение php xdebug можно более подробно и исчерпывающе провести профайлинг и посмотреть дерево вызовов функций и методов.
 
А еще можно положить на сервер и натравить на скрипт чего-нибудь типа ab (apache benchmark).
 
ab ошибается при тестировании.. данная утилита позволяет примерно оценивать, сколько может выдержать конкретная страница интернет-проекта.

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

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

$time_end = microtime(true);
$time = substr($time_end - $time_start, 0, 8) . ' sec';

$memory     = (!function_exists('memory_get_usage')) ? '' : round(memory_get_usage()/1024/1024, 2) . '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-тестирование)
 
Назад
Сверху