Fast Site Engine

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

Сделать сайт

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

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

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

Что быстрее count или sizeof в php

Сегодня разберёмся что быстрее count или sizeof для подсчёта количества элементов массива или количества свойств объекта. Официально sizeof() является псевдоним для count(). В интернете присутствует мнение что sizeof каким-то чудом работает быстрее. Так же видел тесты с "полезной" нагрузкой sprintf, давшие ~15% перевеса sizeof.

function f1(){
  $x=[];
  for($i=0;$i<LOOP;++$i){$x[$i]=1;$y=count($x);}
}
function f2(){
  $x=[];
  for($i=0;$i<LOOP;++$i){$x[$i]=1;$y=sizeof($x);}
}

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

Компьютер:
вызововвремя f1()время f2()победилбыстрее на
1100 0000.0418160.026395f2()0.015421 с.36.88 %
2100 0000.0233910.023791f1()0.000400 с.1.68 %
3100 0000.0250500.023749f2()0.001301 с.5.19 %
4100 0000.0233500.024163f1()0.000813 с.3.36 %
5100 0000.0242000.024578f1()0.000378 с.1.54 %
6100 0000.0261050.024056f2()0.002049 с.7.85 %
7100 0000.0244880.025000f1()0.000512 с.2.05 %
8100 0000.0266820.025376f2()0.001306 с.4.89 %
9100 0000.0240230.025113f1()0.001090 с.4.34 %
Всего: 900 0000.2391050.222221f2()0.016884 с.7.06 %
Сервер:
вызововвремя f1()время f2()победилбыстрее на
1100 0000.0748810.068309f2()0.006572 с.8.78 %
2100 0000.0666970.067162f1()0.000465 с.0.69 %
3100 0000.0801730.067752f2()0.012421 с.15.49 %
4100 0000.0663350.063856f2()0.002479 с.3.74 %
5100 0000.0677660.061459f2()0.006307 с.9.31 %
6100 0000.0609330.061330f1()0.000397 с.0.65 %
7100 0000.0612320.061206f2()0.000026 с.0.04 %
8100 0000.0705260.064373f2()0.006153 с.8.72 %
9100 0000.0644420.064127f2()0.000315 с.0.49 %
Всего: 900 0000.6129850.579574f2()0.033411 с.5.45 %

Как видим писутствует странная магия в php: sizeof работает быстрее count, данным миф подтверждён.



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