Что быстрее 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() | победил | быстрее на | |
---|---|---|---|---|---|---|
1 | 100 000 | 0.041816 | 0.026395 | f2() | 0.015421 с. | 36.88 % |
2 | 100 000 | 0.023391 | 0.023791 | f1() | 0.000400 с. | 1.68 % |
3 | 100 000 | 0.025050 | 0.023749 | f2() | 0.001301 с. | 5.19 % |
4 | 100 000 | 0.023350 | 0.024163 | f1() | 0.000813 с. | 3.36 % |
5 | 100 000 | 0.024200 | 0.024578 | f1() | 0.000378 с. | 1.54 % |
6 | 100 000 | 0.026105 | 0.024056 | f2() | 0.002049 с. | 7.85 % |
7 | 100 000 | 0.024488 | 0.025000 | f1() | 0.000512 с. | 2.05 % |
8 | 100 000 | 0.026682 | 0.025376 | f2() | 0.001306 с. | 4.89 % |
9 | 100 000 | 0.024023 | 0.025113 | f1() | 0.001090 с. | 4.34 % |
Всего: 900 000 | 0.239105 | 0.222221 | f2() | 0.016884 с. | 7.06 % |
№ | вызовов | время f1() | время f2() | победил | быстрее на | |
---|---|---|---|---|---|---|
1 | 100 000 | 0.074881 | 0.068309 | f2() | 0.006572 с. | 8.78 % |
2 | 100 000 | 0.066697 | 0.067162 | f1() | 0.000465 с. | 0.69 % |
3 | 100 000 | 0.080173 | 0.067752 | f2() | 0.012421 с. | 15.49 % |
4 | 100 000 | 0.066335 | 0.063856 | f2() | 0.002479 с. | 3.74 % |
5 | 100 000 | 0.067766 | 0.061459 | f2() | 0.006307 с. | 9.31 % |
6 | 100 000 | 0.060933 | 0.061330 | f1() | 0.000397 с. | 0.65 % |
7 | 100 000 | 0.061232 | 0.061206 | f2() | 0.000026 с. | 0.04 % |
8 | 100 000 | 0.070526 | 0.064373 | f2() | 0.006153 с. | 8.72 % |
9 | 100 000 | 0.064442 | 0.064127 | f2() | 0.000315 с. | 0.49 % |
Всего: 900 000 | 0.612985 | 0.579574 | f2() | 0.033411 с. | 5.45 % |
Как видим писутствует странная магия в php: sizeof работает быстрее count, данным миф подтверждён.