Skip to content

Sereal Comparison Graphs

Xiaofan Hu edited this page Jun 23, 2020 · 5 revisions

Here is a survey of how Sereal stands up against alternative serialization tools in Perl.

The code that generates these, including the data that they were run on can be found in the source code repository at Perl/shared/author_tools/bench.pl. You can run it yourself by building both Encoder and Decoder, then running from the Perl directory:

perl -Mblib=Decoder -Mblib=Encoder Encoder/author_tools/bench.pl --encoder --decoder

There are many flags that control parts of the behaviour of that script. Read the source to find out more.

Array Of Small Hashes With Relations

Decoder Performance Per Second

Encoded Output Sizes In Bytes

Encoder Performance Per Second

Array Of Small Objects With Relations

Same as the example before, but using objects in the place of unblessed hashes.

Decoder Performance Per Second

Encoded Output Sizes In Bytes

Encoder Performance Per Second

Empty Hash

Basically measuring start-up performance. Not very meaningful.

Decoder Performance Per Second

Encoded Output Sizes In Bytes

Encoder Performance Per Second

Large Data Structure

Decoder Performance Per Second

Encoded Output Sizes In Bytes

Encoder Performance Per Second

Small Hash

A small hash with three keys, an integer value, an array of three integers, and a Unicode string.

Decoder Performance Per Second

Encoded Output Sizes In Bytes

Encoder Performance Per Second