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

Fast Site Engine

CMS для сайтов

Создать сайт

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

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

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

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() вызывает потерю производительности, напрямую с массивами работать быстрее.





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