Как стать автором
Обновить

Сериализация в php: serialize, json, bson

Время на прочтение1 мин
Количество просмотров17K
Выбрал функции сериализации для бд — bson. Быстрее serialize в >1.5 раза, json — в 3. Да и результат меньше всех остальных.
Найти его можно в расширении для MongoDB.
Результаты далее.

За каждую итерацию обрабатывались массив и объект, созданный из массива. strlen1 и strlen2 длины получившихся строк соответственно.
array (
  '_all' => 
  array (
    'time' => 17.71448302269,
    'N' => 40000,
  ),
  'serialize' => 
  array (
    'time' => 3.4848301410675,
    'strlen1' => 1087,
    'strlen2' => 1168,
  ),
  'json' => 
  array (
    'time' => 6.2529139518738,
    'strlen1' => 950,
    'strlen2' => 966,
  ),
  'json_unesc' => 
  array (
    'time' => 6.0889739990234,
    'strlen1' => 950,
    'strlen2' => 966,
  ),
  'bson' => 
  array (
    'time' => 1.8876740932465,
    'strlen1' => 884,
    'strlen2' => 884,
  ),
)



UPD: Тестировалась последовательная сериализация и десериализация.
igbinary тут уже:
  'igbinary' => 
  array (
    'time' => 4.2307059764862,
    'strlen1' => 702,
    'strlen2' => 724,
  ),


UPD: msgpack уже без цифр, но он поинтереснее. Немного. На 15% быстрее bson в сериализации, и по размеру между bson и igbinary. Но анпак медленее в 2 раза, итого на 2х почти в 1.5 раза медленнее. Плюсы — реализации для многих языков.
Теги:
Хабы:
Всего голосов 25: ↑13 и ↓12+1
Комментарии13

Публикации

Истории

Работа

PHP программист
133 вакансии

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург