Benchmark::Serialize, который тестирует разные движки сериализации(тестируется сериализация, десериализация и размер сериализированных данных).
У меня в системы оказались следующие движки: Data::Dumper 2.124, JSON::PP 2.27000 JSON::XS 2.27, Storable 2.20, XML::Simple 2.18.
И я был очень и очень удивлен результатом. Первое место по всем показателям достается модулю JSON::XS, при десериализации он быстрее Storable на 30%, а при сериализации в целых 6 (!!!) раз. Размер данных тоже минимальный.
Привожу результаты (исходник бенчмарка в атаче)
Size Deflate InflateJSON::XS 376 313980/s 139750/s JSON::PP 376 5307/s 1778/s Storable 382 46848/s 109720/s XML::Simple 502 4912/s 1249/s Data::Dumper 1058 15486/s 18719/s

3 коммент.:
Попробуй протестить на более сложных структурах данных. Могут получиться немного другие данные (я смог добиться результатов, по которым Storable обогнал JSON::XS по двум пунктам).
Хотя соглашусь, что JSON::XS по скорости очень даже порадовал.
Надеюсь в будущем увидеть пост почему так. :)
Пробовал уже до этого, у меня Storable выигрывал только по размеру. И еще такой прикол был, что XML::Simple валился на бинарных данных
JSON::XS по скорости очень даже порадовал;
однако JSON::XS сериализует в дерево;
Storable -- в граф., он должен дополнительно отслеживать повторные проходы -- сохранять структуру.
$h = {}; $hh ={ a=>$h, b=>$h };
vs
$hh ={ a=>{}, b=>{} };
Отправить комментарий
Не забудьте добавить себя в постоянные читатели и включить уведомления о новых комментариях, либо воспользуйтесь RSS каналом ;)