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 Inflate
JSON::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 каналом ;)