Производительность кодирования и декодирования serialize и json

Возникла мысль сравнить два способа хранения абстрактных данных в виде строк, реализованных в PHP: старая добрая сериализация и относительно недавно поддерживающий в языке формат json.

Для сравнения небольшой скрипт генерирует массив из 1000 элементов, две трети элементов которого — строки, длинной 15 символов (напополам — только буквы и только цифры), а оставшаяся треть — массивы по 50 элементов (также — буквенные и цифровые элементы пополам).

Итог весьма неоднозначен, подробности во второй части.



Заодно я убедился, что serialize/unserialize и json_encode/json_decode — очень быстрые функции и вряд-ли при разумных объемах данных способны стать «бутылочным горлышком».

Кодирование и декодирование выполнялось по 10 раз для каждого метода, в качестве результата работы скрипт выдает суммарное время всех 10 операций.

Наглядный график (заодно освоил азы Google Chart API):

serialize vs json

Результат работы скрипта:

Data length (print_r): 610Kb<br />
Serialize:   0.22sec. (472Kb)<br />
Unserialize: 0.17sec.<br />
JSON encode: 0.19sec. (303Kb)<br />
JSON decode: 0.26sec.


Код скрипта, используемого для тестирования:

  • 0
  • 2 июня 2010, 04:31
  • 0x00

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.