Время выполнение PHP скрипта

Уроки по PHP, Javascript и т.п.
Ответить
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Время выполнение PHP скрипта

Сообщение Александр »

Время выполнение PHP скрипта
PHP

Многие начинающие программисты не обращают внимание на время выполнения своих скриптов. В итоге получается, пусть и рабочий, но очень нелогичный и ресурсозатратный код. В последующем из-за большой нагрузки на сервер, хостер банит аккаунт, пользователи пользовавшиеся приложением (скриптом) недовольны и навсегда забывают про то что когда-то был такой скрипт... Пишите оптимизированные скрипты сразу.


Скорость выполнения PHP скрипта можно проверить так:

Код: Выделить всё

$start = microtime(true); /* проверяемый код */ echo 'Время выполнения скрипта '.(microtime(true) - $start);

Чтобы сравнить скорость выполнения скрипта разными способами и увидеть ощутимую разницу, можно выполнить одно и то же действие в цикле.

Код: Выделить всё

for ($i=0; $i<1000; $i++) {    $a = $a+10;}


Например, сравним время выполнения цикла for при условии, что в первом случае длина массива будет заранее определена в переменной, а во втором будет определяться в условии цикла.

Код: Выделить всё

<?// заполняем массив$arr = Array();for ($i=0; $i<1000; $i++) {    array_push($arr,$i);}  // способ 1$start = microtime(true);// узнаём количество элементов в массиве и сохраняем в переменную $l$l = sizeOf($arr);for ($i=0; $i<$l; $i++) {    $str .= $arr[$i];}echo 'Время выполнения скрипта '.(microtime(true) - $start).'<br />';  // способ 2$start = microtime(true);// узнаём количество элементов в массиве  прямо в условииfor ($i=0; $i<sizeOf($arr); $i++) {    $str .= $arr[$i];}echo 'Время выполнения скрипта '.(microtime(true) - $start).'<br />'; ?>
Первый способ быстрее.
Nick Lisogor
FL Team
FL Team
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08

Re: Время выполнение PHP скрипта

Сообщение Nick Lisogor »

Советую пользоваться $_SERVER["REQUEST_TIME"]. Начиная с PHP 5.4, будут доступны миллисекунды.
Ответить