Fast Site Engine

Высокопроизводительная CMS для сайтов.

Сделать сайт

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

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

Скачать
О движкеПроизводительностьБезопасностьТехнические требованияSEOКонтакты

list vs array

Стало интересно, что будет быстрей в php list vs array, синтаксис list($n,$m)=[]; удобней чем $a=[]; $n=$a[0]; $m=$a[1]; осталось посмотреть на результаты.

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

Компьютер:
  Apache/2.4.46 PHP 8.0.2
  Linux version 4.15.0-136-generic (Kubuntu 18.04.5 LTS (Bionic Beaver) x86_64)
  12 x AMD Ryzen 5 1600X @ 3.60GHz
Сервер:
  Apache/2.4.39 PHP 7.3.4
  Linux version 4.18.15-1.el7.elrepo.x86_64 (CentOS Linux release 7.7.1908 (Core))
  2 x Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz

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

define('LOOP',10000000);
function f1(){
  $i=$n=$m=0;$a=[];
  while(++$i<LOOP){
    $a=[0=>$i,1=>$i];
    $n=$a[0];
    $m=$a[1];
  }
}
function f2(){
  $i=$n=$m=0;$a=[];
  while(++$i<LOOP){
    list($n,$m)=[0=>$i,1=>$i];
  }
}

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

Компьютер:
вызововвремя f1()время f2()победилбыстрее на
110 000 0000.5766650.577789f1()0.001124 с.0.19 %
210 000 0000.5603580.583653f1()0.023295 с.3.99 %
310 000 0000.5617090.582852f1()0.021143 с.3.63 %
410 000 0000.5750120.594636f1()0.019624 с.3.3 %
510 000 0000.5687140.588363f1()0.019649 с.3.34 %
610 000 0000.5579340.587272f1()0.029338 с.5 %
710 000 0000.5579810.594532f1()0.036551 с.6.15 %
810 000 0000.5601890.578714f1()0.018525 с.3.2 %
910 000 0000.5699310.587479f1()0.017548 с.2.99 %
Всего: 90 000 0005.0884935.275290f1()0.186797 с.3.54 %
Сервер:
вызововвремя f1()время f2()победилбыстрее на
110 000 0000.6734580.753494f1()0.080036 с.10.62 %
210 000 0000.6463670.750525f1()0.104158 с.13.88 %
310 000 0000.6499840.771922f1()0.121938 с.15.8 %
410 000 0000.6406710.730327f1()0.089656 с.12.28 %
510 000 0000.6692770.751155f1()0.081878 с.10.9 %
610 000 0000.6687860.766541f1()0.097755 с.12.75 %
710 000 0000.6566380.736108f1()0.079470 с.10.8 %
810 000 0000.6458640.731434f1()0.085570 с.11.7 %
910 000 0000.6457980.727218f1()0.081420 с.11.2 %
Всего: 90 000 0005.8968436.718724f1()0.821881 с.12.23 %

Как видим, вызов list() вызывает потерю производительности, напрямую с массивами работать быстрее.



© Все права защищены 2004 - 2024