Fast Site Engine
Высокопроизводительный движок для сайтов
Заказать сайт на основе движка
О движкеПроизводительностьБезопасностьТехнические требованияSEO 
Лицензионное соглашение
Демо
Установка
Панель управления
Модули
Документация
Шаблоны
Тесты производительности php
Планы на будущее
Список изменений
Отзывы и пожелания
Переходим на Линукс
Всякое разное
Тесты производительности php  »  for vs while

for vs while

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

Тесты php проводятся на 2 машинах

Конфигурация компьютера:
  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--;
}

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

Компьютер:
функциявpемябыстрее на
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 %
Сервер:
функциявpемябыстрее на
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++).

Страница сгенерирована за 0.003555 секунды
На один процесс веб-сервера: 281 стр/сек.
Всего Apache может отдать: 71 936 стр/сек.
Выделено php памяти: 831.24 KB, real_usage: 2 MB

© Все права защищены 2004 - 2019
Карта сайта
Отслеживать изменения в Твиттере
Политика конфиденциальности

Браузер построил за сек.
Полное время сек.

С момента выгрузки предыдущей страницы из памяти браузера: сек.