Производительность разных решений в PHP

benchmarks
 
+
-
edit
 

Balancer

администратор
★★★★★
Очередной тест вариантов чтения массива из файла.

Массив — md5 хешей чисел от 0 до 999.

Производительность разных вариантов чтения, на 7 запусков по 1000 циклов, в расчёте на одну операцию.

ОперацияМинимальное время, мсСреднее время, мс
unserialize(file_get_contents('serialize.dat'))0.280.31
eval('$array='.file_get_contents('var_dump.dat').';')1.071.10
parse_ini_file('file.ini')1.071.15
json_decode(file_get_contents('file.pretty.json'))1.361.46
json_decode(file_get_contents('file.json'))1.401.46


file.pretty.json — это результат json_encode($array, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_NUMERIC_CHECK);
 3030
+
-
edit
 

Balancer

администратор
★★★★★
Перевёл на пробу один тестовый контейнер на PHP7. На php-5.5.9 медианное время отклика типовой среднего веса динамической страницы было 75мс, минимальное — 65мс. На php-7.0.4 стало 59мс и 28мс, соответственно. Это в один поток.

В 5 потоков — с 173/73 мс до 65/37мс.

В общем, разница очень заметная :) Надо будет всё оттестировать и переводить боевые сервера...
 33
+
-
edit
 

Balancer

администратор
★★★★★
Поиск подстроки в юникодной строке в PHP без учёта регистра через preg_match() с модификаторами "/ui" в 7.5 раз быстрее, чем через mb_stripos(). В одном скрипте тут профилировал, 19.5 тыс. проверок. Так время работы — 0.31 у сек. preg_match против 2.3 сек. у mb_stripos :)
 33

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru