АСѾԐД Создание и продвижение сайтов

Fast Site Engine

CMS для сайтов

Создать сайт

Карта сайта
Переходим на Линукс
Политика конфиденциальности
Сделать сайт на основе Fast Site Engine

Установка
Документация
Список изменений
Лицензионное соглашение

Скачать
О движкеОбо мнеДеятельностьПортфолиоКонтакты

for vs while

Как обещал ранее в тесте PHP функций с массивом, в этот раз посмотрим какой цикл быстрее for vs while.

Тесты PHP проводились на двух конфигурациях

Компьютер:
  Apache/2.4.34 PHP 7.2.10
  Linux version 4.15.0-45-generic (Kubuntu 18.04.2 LTS (Bionic Beaver) x86_64)
  12 x AMD Ryzen 5 1600X @ 3.70GHz
Сервер:
  Apache/2.4.38 PHP 7.2.15
  Linux version 2.6.32-042stab127.2 (Red Hat 4.4.6-4) (CENTOS 6.10 x86_64)
  4 x Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz

Функции тестирования, 90 000 000 вызовов

define('LOOP',10000000);
1.
for($i=0; $i<LOOP; $i++){
  if($i==1000001){}
}
2.
for($i=LOOP; $i>0; $i--){
  if($i==1000001){}
}
3.
$i=0;
while($i<LOOP){
  if($i==1000001){}
  $i++;
}
4.
$i=LOOP;
while($i>0){
  if($i==1000001){}
  $i--;
}

Результаты в порядке возрастания

Компьютер:
функциявремябыстрее на
2for($i=LOOP; $i>0; $i--)0.8956570.000000 с.0 %
4while($i>0)0.901333+0.005676 с.+0.63 %
1for($i=0; $i<LOOP; $i++)1.104547+0.208890 с.+18.91 %
3while($i<LOOP)1.113707+0.218050 с.+19.58 %
Сервер:
функциявремябыстрее на
3while($i<LOOP)0.9710640.000000 с.0 %
1for($i=0; $i<LOOP; $i++)0.975606+0.004542 с.+0.47 %
4while($i>0)1.019433+0.048369 с.+4.74 %
2for($i=LOOP; $i>0; $i--)1.047586+0.076522 с.+7.3 %

Забавные результаты, пока AMD не отжала серверный рынок, равняться будем на показания сервера, таким образом в порядке возрастания - либо while либо for. Учитывая результаты предыдущего тестирования победителем назначаю for($i=0; $i<LOOP; $i++).





15.07.2026
16.8.7534 от С.М.З.Х.
Unix time: 1784146517
© Все права защищены 2004 - 2026