title | permalink |
---|---|
Benchmark |
/ |
JSON documents - Serialization formats - Results - Running locally - GitHub
A large-scale space-efficiency benchmark of JSON-compatible binary serialization formats (with and without compression) involving representative real-world JSON documents.
This size benchmark utilizes representative real-world JSON documents adapted from the open-source Apache-2.0 SchemaStore's test suite. All the JSON documents used in this benchmark are described in the table below. The type column is based on JSON BinPack's JSON Stats online tool.
Name | Type | Document | SchemaStore |
---|---|---|---|
CircleCI Definition (Blank) | tier 1 minified < 100 bytes numeric non-redundant flat | Link | Link |
CircleCI Matrix Definition | tier 1 minified < 100 bytes numeric non-redundant nested | Link | Link |
CommitLint Configuration | tier 1 minified < 100 bytes textual redundant nested | Link | Link |
CommitLint Configuration (Basic) | tier 1 minified < 100 bytes boolean non-redundant flat | Link | Link |
Entry Point Regulation Manifest | tier 2 minified >= 100 < 1000 bytes textual redundant nested | Link | Link |
ESLint Configuration Document | tier 3 minified >= 1000 bytes numeric redundant flat | Link | Link |
ECMAScript Module Loader Definition | tier 2 minified >= 100 < 1000 bytes boolean non-redundant flat | Link | Link |
GeoJSON Example Document | tier 2 minified >= 100 < 1000 bytes numeric redundant nested | Link | Link |
GitHub FUNDING Sponsorship Definition (Empty) | tier 2 minified >= 100 < 1000 bytes boolean redundant flat | Link | Link |
GitHub Workflow Definition | tier 2 minified >= 100 < 1000 bytes textual non-redundant nested | Link | Link |
Grunt.js Clean Task Definition | tier 1 minified < 100 bytes textual redundant flat | Link | Link |
ImageOptimizer Azure Webjob Configuration | tier 1 minified < 100 bytes textual non-redundant nested | Link | Link |
JSON-e Templating Engine Reverse Sort Example | tier 1 minified < 100 bytes numeric redundant nested | Link | Link |
JSON-e Templating Engine Sort Example | tier 1 minified < 100 bytes numeric redundant flat | Link | Link |
JSON Feed Example Document | tier 2 minified >= 100 < 1000 bytes textual non-redundant flat | Link | Link |
JSON Resume Example | tier 3 minified >= 1000 bytes textual non-redundant nested | Link | Link |
.NET Core Project | tier 3 minified >= 1000 bytes textual redundant nested | Link | Link |
Nightwatch.js Test Framework Configuration | tier 3 minified >= 1000 bytes boolean redundant flat | Link | Link |
OpenWeatherMap API Example Document | tier 2 minified >= 100 < 1000 bytes numeric non-redundant flat | Link | Link |
OpenWeather Road Risk API Example | tier 2 minified >= 100 < 1000 bytes numeric non-redundant nested | Link | Link |
NPM Package.json Example Manifest | tier 3 minified >= 1000 bytes textual non-redundant flat | Link | Link |
NPM Package.json Linter Configuration Manifest | tier 3 minified >= 1000 bytes textual redundant flat | Link | Link |
SAP Cloud SDK Continuous Delivery Toolkit Configuration | tier 1 minified < 100 bytes boolean redundant flat | Link | Link |
TravisCI Notifications Configuration | tier 2 minified >= 100 < 1000 bytes textual redundant flat | Link | Link |
TSLint Linter Definition (Basic) | tier 1 minified < 100 bytes boolean non-redundant nested | Link | Link |
TSLint Linter Definition (Extends Only) | tier 1 minified < 100 bytes textual non-redundant flat | Link | Link |
TSLint Linter Definition (Multi-rule) | tier 1 minified < 100 bytes boolean redundant nested | Link | Link |
This benchmark involves the serialization formats, implementations, and encodings described in the table below.
Serialization Format | Implementation | Version | Encodings |
---|---|---|---|
ASN.1 | ASN-1Step | 10.0.2 | PER Unaligned |
Apache Avro | Python avro (pip) |
1.10.0 | Binary Encoding with no framing |
Microsoft Bond | C++ | 9.0.4 | Compact Binary v1 |
BSON | Node.js bson (npm) |
4.2.2 | |
Cap'n Proto | capnp |
0.8.0 | Packed and Binary |
CBOR | Python cbor2 (pip) |
5.1.2 | |
FlatBuffers | flatc |
1.12.0 | Binary Wire Format |
FlexBuffers | flatc |
1.12.0 | Binary Wire Format |
MessagePack | msgpack-tools |
0.6 | |
Protocol Buffers | Python protobuf (pip) |
3.15.3 | Binary Wire Format |
Smile | Clojure cheshire |
5.10.0 | |
Apache Thrift | Python thrift (pip) |
0.13.0 | Compact Protocol |
UBJSON | Python py-ubjson (pip) |
0.16.1 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
4 | 24 | 23 | 27 |
Apache Avro (unframed) | schema.json |
4 | 24 | 23 | 26 |
Microsoft Bond (Compact Binary v1) | schema.bond |
10 | 25 | 29 | 28 |
Cap'n Proto (Binary Encoding) | schema.capnp |
24 | 32 | 41 | 33 |
Cap'n Proto (Packed Encoding) | schema.capnp |
6 | 26 | 25 | 29 |
FlatBuffers | schema.fbs |
20 | 32 | 39 | 35 |
Protocol Buffers (Binary Wire Format) | schema.proto |
5 | 25 | 24 | 27 |
Apache Thrift (Compact Protocol) | schema.thrift |
10 | 25 | 29 | 28 |
JSON | None | 14 | 34 | 33 | 38 |
BSON | None | 18 | 36 | 37 | 39 |
CBOR | None | 10 | 30 | 29 | 34 |
FlexBuffers | None | 18 | 38 | 37 | 41 |
MessagePack | None | 10 | 30 | 29 | 34 |
Smile | None | 15 | 35 | 34 | 39 |
UBJSON | None | 13 | 33 | 32 | 37 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 10.4 | 8 | 20 | 7.1 |
GZIP (compression level 9) | 26.6 | 25 | 8 | 3.2 |
LZ4 (compression level 9) | 29.1 | 27 | 18 | 6.7 |
LZMA (compression level 9) | 29.1 | 28 | 9 | 3.0 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 14 | 14 | 8 | 3.3 |
GZIP (compression level 9) | 33.7 | 34 | 8 | 3.0 |
LZ4 (compression level 9) | 33 | 33 | 8 | 3.3 |
LZMA (compression level 9) | 37.3 | 38 | 7 | 2.6 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
18 | 36 | 37 | 38 |
Apache Avro (unframed) | schema.json |
15 | 32 | 34 | 36 |
Microsoft Bond (Compact Binary v1) | schema.bond |
30 | 43 | 49 | 45 |
Cap'n Proto (Binary Encoding) | schema.capnp |
96 | 56 | 72 | 54 |
Cap'n Proto (Packed Encoding) | schema.capnp |
36 | 49 | 54 | 50 |
FlatBuffers | schema.fbs |
104 | 82 | 104 | 77 |
JSON BinPack (Schema-driven) | schema.json |
7 | 27 | 26 | 30 |
Protocol Buffers (Binary Wire Format) | schema.proto |
26 | 43 | 45 | 46 |
Apache Thrift (Compact Protocol) | schema.thrift |
28 | 39 | 47 | 42 |
JSON | None | 95 | 99 | 112 | 101 |
BSON | None | 136 | 123 | 150 | 121 |
CBOR | None | 72 | 89 | 91 | 90 |
FlexBuffers | None | 157 | 134 | 151 | 131 |
JSON BinPack (Schema-less) | schema.json |
66 | 85 | 85 | 88 |
MessagePack | None | 72 | 90 | 91 | 92 |
Smile | None | 87 | 104 | 106 | 105 |
UBJSON | None | 92 | 103 | 111 | 104 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 40 | 28 | 97 | 33.1 |
GZIP (compression level 9) | 45.2 | 43 | 55 | 15.4 |
LZ4 (compression level 9) | 52 | 47 | 78 | 22.2 |
LZMA (compression level 9) | 46.4 | 45 | 47 | 12.8 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 97.4 | 87 | 91 | 32.6 |
GZIP (compression level 9) | 104 | 103 | 49 | 17.1 |
LZ4 (compression level 9) | 112.1 | 106 | 66 | 25.7 |
LZMA (compression level 9) | 104.4 | 104 | 43 | 15.2 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
50 | 48 | 55 | 52 |
Apache Avro (unframed) | schema.json |
40 | 41 | 49 | 45 |
Microsoft Bond (Compact Binary v1) | schema.bond |
63 | 56 | 62 | 60 |
Cap'n Proto (Binary Encoding) | schema.capnp |
152 | 75 | 96 | 73 |
Cap'n Proto (Packed Encoding) | schema.capnp |
76 | 67 | 75 | 71 |
FlatBuffers | schema.fbs |
156 | 95 | 122 | 91 |
JSON BinPack (Schema-driven) | schema.json |
20 | 40 | 39 | 43 |
Protocol Buffers (Binary Wire Format) | schema.proto |
62 | 60 | 70 | 63 |
Apache Thrift (Compact Protocol) | schema.thrift |
59 | 53 | 59 | 57 |
JSON | None | 96 | 80 | 86 | 83 |
BSON | None | 147 | 97 | 112 | 97 |
CBOR | None | 74 | 67 | 76 | 70 |
FlexBuffers | None | 90 | 97 | 105 | 99 |
JSON BinPack (Schema-less) | schema.json |
60 | 72 | 75 | 76 |
MessagePack | None | 74 | 68 | 76 | 71 |
Smile | None | 84 | 76 | 82 | 80 |
UBJSON | None | 93 | 79 | 86 | 83 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 75.3 | 62 | 136 | 44.6 |
GZIP (compression level 9) | 59.4 | 56 | 55 | 16.6 |
LZ4 (compression level 9) | 69.7 | 62 | 83 | 24.1 |
LZMA (compression level 9) | 61.7 | 60 | 48 | 14.2 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 88.9 | 84 | 87 | 25.9 |
GZIP (compression level 9) | 79.4 | 76 | 30 | 11.8 |
LZ4 (compression level 9) | 87.4 | 82 | 37 | 13.9 |
LZMA (compression level 9) | 82.3 | 80 | 29 | 10.8 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
1 | 21 | 20 | 24 |
Apache Avro (unframed) | schema.json |
1 | 21 | 20 | 24 |
Microsoft Bond (Compact Binary v1) | schema.bond |
3 | 23 | 22 | 26 |
Cap'n Proto (Binary Encoding) | schema.capnp |
24 | 31 | 41 | 31 |
Cap'n Proto (Packed Encoding) | schema.capnp |
6 | 26 | 25 | 29 |
FlatBuffers | schema.fbs |
20 | 31 | 39 | 34 |
JSON BinPack (Schema-driven) | schema.json |
0 | 20 | 15 | 23 |
Protocol Buffers (Binary Wire Format) | schema.proto |
0 | 20 | 15 | 23 |
Apache Thrift (Compact Protocol) | schema.thrift |
2 | 22 | 21 | 25 |
JSON | None | 25 | 45 | 44 | 49 |
BSON | None | 22 | 41 | 41 | 44 |
CBOR | None | 17 | 37 | 36 | 41 |
FlexBuffers | None | 25 | 45 | 44 | 49 |
JSON BinPack (Schema-less) | schema.json |
17 | 37 | 36 | 41 |
MessagePack | None | 17 | 37 | 36 | 41 |
Smile | None | 22 | 42 | 41 | 47 |
UBJSON | None | 19 | 39 | 38 | 43 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 6.3 | 2 | 24 | 8.6 |
GZIP (compression level 9) | 23.9 | 22 | 11 | 4.2 |
LZ4 (compression level 9) | 24.2 | 21 | 26 | 9.0 |
LZMA (compression level 9) | 26.6 | 25 | 11 | 3.7 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 19.9 | 19 | 8 | 2.9 |
GZIP (compression level 9) | 39.7 | 39 | 8 | 2.9 |
LZ4 (compression level 9) | 38.9 | 38 | 8 | 2.9 |
LZMA (compression level 9) | 43.7 | 43 | 8 | 3.0 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
231 | 180 | 208 | 175 |
Apache Avro (unframed) | schema.json |
195 | 168 | 197 | 167 |
Microsoft Bond (Compact Binary v1) | schema.bond |
262 | 199 | 225 | 191 |
Cap'n Proto (Binary Encoding) | schema.capnp |
536 | 261 | 326 | 233 |
Cap'n Proto (Packed Encoding) | schema.capnp |
318 | 255 | 280 | 241 |
FlatBuffers | schema.fbs |
504 | 290 | 369 | 273 |
JSON BinPack (Schema-driven) | schema.json |
182 | 171 | 201 | 170 |
Protocol Buffers (Binary Wire Format) | schema.proto |
247 | 196 | 222 | 189 |
Apache Thrift (Compact Protocol) | schema.thrift |
251 | 192 | 220 | 186 |
JSON | None | 520 | 264 | 332 | 272 |
BSON | None | 564 | 304 | 378 | 299 |
CBOR | None | 412 | 248 | 306 | 246 |
FlexBuffers | None | 429 | 355 | 417 | 342 |
JSON BinPack (Schema-less) | schema.json |
321 | 282 | 318 | 274 |
MessagePack | None | 412 | 262 | 307 | 254 |
Smile | None | 356 | 266 | 311 | 261 |
UBJSON | None | 469 | 272 | 326 | 265 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 302.9 | 251 | 354 | 122.0 |
GZIP (compression level 9) | 212.4 | 196 | 122 | 41.9 |
LZ4 (compression level 9) | 249.8 | 222 | 172 | 57.8 |
LZMA (compression level 9) | 202.8 | 189 | 106 | 35.0 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 423.3 | 412 | 243 | 72.9 |
GZIP (compression level 9) | 284.1 | 272 | 107 | 33.2 |
LZ4 (compression level 9) | 337.6 | 318 | 111 | 39.8 |
LZMA (compression level 9) | 277.3 | 265 | 96 | 30.7 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
65 | 81 | 84 | 83 |
Apache Avro (unframed) | schema.json |
100 | 93 | 107 | 91 |
Microsoft Bond (Compact Binary v1) | schema.bond |
194 | 184 | 212 | 180 |
Cap'n Proto (Binary Encoding) | schema.capnp |
216 | 136 | 181 | 128 |
Cap'n Proto (Packed Encoding) | schema.capnp |
131 | 130 | 141 | 129 |
FlatBuffers | schema.fbs |
320 | 228 | 305 | 217 |
JSON BinPack (Schema-driven) | schema.json |
64 | 80 | 83 | 83 |
Protocol Buffers (Binary Wire Format) | schema.proto |
161 | 164 | 180 | 155 |
Apache Thrift (Compact Protocol) | schema.thrift |
150 | 110 | 132 | 109 |
JSON | None | 1141 | 488 | 703 | 521 |
BSON | None | 1184 | 512 | 727 | 539 |
CBOR | None | 979 | 504 | 717 | 544 |
FlexBuffers | None | 1201 | 635 | 824 | 636 |
JSON BinPack (Schema-less) | schema.json |
969 | 511 | 710 | 538 |
MessagePack | None | 971 | 525 | 712 | 546 |
Smile | None | 979 | 544 | 724 | 565 |
UBJSON | None | 1070 | 550 | 771 | 563 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 155.7 | 150 | 256 | 76.4 |
GZIP (compression level 9) | 134 | 130 | 148 | 47.4 |
LZ4 (compression level 9) | 158.3 | 141 | 222 | 66.8 |
LZMA (compression level 9) | 130.6 | 128 | 134 | 43.6 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 1050.4 | 979 | 232 | 95.6 |
GZIP (compression level 9) | 540.1 | 525 | 131 | 41.9 |
LZ4 (compression level 9) | 740.7 | 724 | 114 | 39.0 |
LZMA (compression level 9) | 561.6 | 546 | 98 | 32.0 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
12 | 32 | 31 | 35 |
Apache Avro (unframed) | schema.json |
16 | 36 | 35 | 39 |
Microsoft Bond (Compact Binary v1) | schema.bond |
29 | 49 | 48 | 54 |
Cap'n Proto (Binary Encoding) | schema.capnp |
80 | 68 | 82 | 67 |
Cap'n Proto (Packed Encoding) | schema.capnp |
35 | 55 | 54 | 59 |
FlatBuffers | schema.fbs |
80 | 77 | 94 | 74 |
JSON BinPack (Schema-driven) | schema.json |
12 | 32 | 31 | 35 |
Protocol Buffers (Binary Wire Format) | schema.proto |
23 | 43 | 42 | 47 |
Apache Thrift (Compact Protocol) | schema.thrift |
24 | 44 | 43 | 48 |
JSON | None | 102 | 101 | 117 | 103 |
BSON | None | 96 | 101 | 115 | 105 |
CBOR | None | 64 | 81 | 83 | 82 |
FlexBuffers | None | 91 | 107 | 110 | 109 |
JSON BinPack (Schema-less) | schema.json |
64 | 80 | 83 | 84 |
MessagePack | None | 64 | 82 | 83 | 85 |
Smile | None | 70 | 87 | 89 | 91 |
UBJSON | None | 78 | 93 | 97 | 94 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 34.6 | 24 | 68 | 25.3 |
GZIP (compression level 9) | 48.4 | 44 | 45 | 14.9 |
LZ4 (compression level 9) | 51.1 | 43 | 63 | 21.2 |
LZMA (compression level 9) | 50.9 | 48 | 39 | 13.1 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 75.3 | 70 | 32 | 12.5 |
GZIP (compression level 9) | 90.1 | 87 | 27 | 9.8 |
LZ4 (compression level 9) | 94.3 | 89 | 32 | 12.5 |
LZMA (compression level 9) | 92.9 | 91 | 27 | 9.8 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
205 | 105 | 136 | 103 |
Apache Avro (unframed) | schema.json |
283 | 100 | 130 | 92 |
Microsoft Bond (Compact Binary v1) | schema.bond |
298 | 116 | 143 | 106 |
Cap'n Proto (Binary Encoding) | schema.capnp |
448 | 146 | 197 | 132 |
Cap'n Proto (Packed Encoding) | schema.capnp |
228 | 142 | 162 | 137 |
FlatBuffers | schema.fbs |
680 | 220 | 291 | 195 |
JSON BinPack (Schema-driven) | schema.json |
82 | 69 | 82 | 66 |
Protocol Buffers (Binary Wire Format) | schema.proto |
325 | 115 | 145 | 107 |
Apache Thrift (Compact Protocol) | schema.thrift |
277 | 110 | 136 | 104 |
JSON | None | 190 | 121 | 146 | 116 |
BSON | None | 456 | 187 | 234 | 167 |
CBOR | None | 172 | 112 | 138 | 109 |
FlexBuffers | None | 309 | 167 | 200 | 163 |
JSON BinPack (Schema-less) | schema.json |
117 | 101 | 122 | 100 |
MessagePack | None | 162 | 111 | 132 | 109 |
Smile | None | 228 | 131 | 158 | 128 |
UBJSON | None | 208 | 126 | 153 | 120 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 314 | 283 | 598 | 159.1 |
GZIP (compression level 9) | 124.8 | 115 | 151 | 39.9 |
LZ4 (compression level 9) | 158 | 143 | 209 | 54.9 |
LZMA (compression level 9) | 115.8 | 106 | 129 | 34.2 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 236 | 208 | 339 | 105.8 |
GZIP (compression level 9) | 133.6 | 126 | 86 | 29.5 |
LZ4 (compression level 9) | 162.4 | 153 | 112 | 37.4 |
LZMA (compression level 9) | 128 | 120 | 67 | 24.8 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
16 | 36 | 35 | 39 |
Apache Avro (unframed) | schema.json |
16 | 36 | 35 | 39 |
Microsoft Bond (Compact Binary v1) | schema.bond |
49 | 64 | 68 | 64 |
Cap'n Proto (Binary Encoding) | schema.capnp |
40 | 50 | 56 | 51 |
Cap'n Proto (Packed Encoding) | schema.capnp |
25 | 45 | 44 | 50 |
FlatBuffers | schema.fbs |
68 | 71 | 79 | 71 |
JSON BinPack (Schema-driven) | schema.json |
16 | 36 | 35 | 39 |
Protocol Buffers (Binary Wire Format) | schema.proto |
17 | 37 | 36 | 41 |
Apache Thrift (Compact Protocol) | schema.thrift |
18 | 38 | 37 | 42 |
JSON | None | 183 | 134 | 167 | 144 |
BSON | None | 133 | 125 | 152 | 137 |
CBOR | None | 124 | 114 | 143 | 131 |
FlexBuffers | None | 152 | 143 | 168 | 148 |
JSON BinPack (Schema-less) | schema.json |
124 | 124 | 143 | 135 |
MessagePack | None | 124 | 124 | 143 | 136 |
Smile | None | 129 | 134 | 148 | 139 |
UBJSON | None | 137 | 135 | 156 | 144 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 29.4 | 18 | 52 | 17.7 |
GZIP (compression level 9) | 45.9 | 38 | 35 | 12.5 |
LZ4 (compression level 9) | 47.2 | 37 | 44 | 15.7 |
LZMA (compression level 9) | 48.4 | 42 | 32 | 11.2 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 131.9 | 129 | 28 | 9.5 |
GZIP (compression level 9) | 128.4 | 125 | 29 | 8.8 |
LZ4 (compression level 9) | 150.4 | 148 | 25 | 8.6 |
LZMA (compression level 9) | 138.6 | 137 | 17 | 5.3 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
165 | 154 | 172 | 152 |
Apache Avro (unframed) | schema.json |
167 | 153 | 164 | 153 |
Microsoft Bond (Compact Binary v1) | schema.bond |
201 | 178 | 195 | 179 |
Cap'n Proto (Binary Encoding) | schema.capnp |
464 | 241 | 299 | 223 |
Cap'n Proto (Packed Encoding) | schema.capnp |
242 | 232 | 247 | 230 |
FlatBuffers | schema.fbs |
440 | 275 | 352 | 256 |
JSON BinPack (Schema-driven) | schema.json |
165 | 151 | 163 | 152 |
Protocol Buffers (Binary Wire Format) | schema.proto |
189 | 176 | 195 | 175 |
Apache Thrift (Compact Protocol) | schema.thrift |
187 | 170 | 186 | 170 |
JSON | None | 356 | 228 | 292 | 247 |
BSON | None | 411 | 273 | 347 | 278 |
CBOR | None | 288 | 208 | 257 | 216 |
FlexBuffers | None | 396 | 309 | 369 | 318 |
JSON BinPack (Schema-less) | schema.json |
277 | 233 | 261 | 228 |
MessagePack | None | 287 | 222 | 256 | 224 |
Smile | None | 287 | 235 | 268 | 240 |
UBJSON | None | 339 | 243 | 291 | 249 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 246.7 | 189 | 299 | 112.2 |
GZIP (compression level 9) | 192.2 | 176 | 124 | 42.8 |
LZ4 (compression level 9) | 219.2 | 195 | 189 | 62.8 |
LZMA (compression level 9) | 187.8 | 175 | 104 | 36.5 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 326.4 | 288 | 134 | 52.3 |
GZIP (compression level 9) | 246.1 | 235 | 101 | 31.7 |
LZ4 (compression level 9) | 292.7 | 268 | 113 | 43.1 |
LZMA (compression level 9) | 250.4 | 240 | 102 | 33.4 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
13 | 29 | 32 | 32 |
Apache Avro (unframed) | schema.json |
16 | 31 | 35 | 34 |
Microsoft Bond (Compact Binary v1) | schema.bond |
27 | 41 | 43 | 46 |
Cap'n Proto (Binary Encoding) | schema.capnp |
96 | 66 | 85 | 66 |
Cap'n Proto (Packed Encoding) | schema.capnp |
39 | 53 | 58 | 56 |
FlatBuffers | schema.fbs |
116 | 77 | 104 | 74 |
JSON BinPack (Schema-driven) | schema.json |
11 | 31 | 30 | 35 |
Protocol Buffers (Binary Wire Format) | schema.proto |
20 | 36 | 39 | 41 |
Apache Thrift (Compact Protocol) | schema.thrift |
23 | 38 | 39 | 41 |
JSON | None | 93 | 94 | 106 | 95 |
BSON | None | 105 | 97 | 110 | 98 |
CBOR | None | 60 | 75 | 79 | 77 |
FlexBuffers | None | 94 | 110 | 113 | 115 |
JSON BinPack (Schema-less) | schema.json |
57 | 76 | 76 | 79 |
MessagePack | None | 60 | 76 | 79 | 78 |
Smile | None | 70 | 85 | 88 | 88 |
UBJSON | None | 77 | 88 | 92 | 89 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 40.1 | 23 | 105 | 36.4 |
GZIP (compression level 9) | 44.7 | 38 | 48 | 16.1 |
LZ4 (compression level 9) | 51.7 | 39 | 74 | 24.5 |
LZMA (compression level 9) | 47.2 | 41 | 42 | 14.1 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 74.7 | 70 | 48 | 17.2 |
GZIP (compression level 9) | 86.7 | 85 | 35 | 12.1 |
LZ4 (compression level 9) | 91 | 88 | 37 | 14.0 |
LZMA (compression level 9) | 89.1 | 88 | 38 | 12.7 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
21 | 41 | 40 | 45 |
Apache Avro (unframed) | schema.json |
24 | 44 | 43 | 47 |
Microsoft Bond (Compact Binary v1) | schema.bond |
30 | 50 | 49 | 54 |
Cap'n Proto (Binary Encoding) | schema.capnp |
96 | 76 | 97 | 72 |
Cap'n Proto (Packed Encoding) | schema.capnp |
44 | 64 | 63 | 68 |
FlatBuffers | schema.fbs |
100 | 80 | 101 | 79 |
JSON BinPack (Schema-driven) | schema.json |
21 | 41 | 40 | 44 |
Protocol Buffers (Binary Wire Format) | schema.proto |
23 | 43 | 42 | 47 |
Apache Thrift (Compact Protocol) | schema.thrift |
26 | 46 | 45 | 50 |
JSON | None | 82 | 88 | 96 | 90 |
BSON | None | 102 | 103 | 117 | 100 |
CBOR | None | 61 | 76 | 78 | 76 |
FlexBuffers | None | 89 | 102 | 107 | 103 |
JSON BinPack (Schema-less) | schema.json |
61 | 76 | 78 | 78 |
MessagePack | None | 61 | 77 | 78 | 78 |
Smile | None | 70 | 86 | 88 | 88 |
UBJSON | None | 74 | 87 | 90 | 87 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 42.8 | 26 | 79 | 30.3 |
GZIP (compression level 9) | 53.9 | 46 | 39 | 14.5 |
LZ4 (compression level 9) | 57.8 | 45 | 61 | 23.0 |
LZMA (compression level 9) | 56.2 | 50 | 35 | 12.5 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 74 | 70 | 41 | 14.8 |
GZIP (compression level 9) | 86.7 | 86 | 27 | 10.8 |
LZ4 (compression level 9) | 90.9 | 88 | 39 | 14.4 |
LZMA (compression level 9) | 87.1 | 87 | 27 | 10.1 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
15 | 31 | 34 | 33 |
Apache Avro (unframed) | schema.json |
11 | 31 | 30 | 34 |
Microsoft Bond (Compact Binary v1) | schema.bond |
23 | 41 | 42 | 42 |
Cap'n Proto (Binary Encoding) | schema.capnp |
240 | 72 | 100 | 68 |
Cap'n Proto (Packed Encoding) | schema.capnp |
43 | 63 | 62 | 65 |
FlatBuffers | schema.fbs |
136 | 89 | 126 | 87 |
JSON BinPack (Schema-driven) | schema.json |
10 | 30 | 29 | 33 |
Protocol Buffers (Binary Wire Format) | schema.proto |
21 | 41 | 40 | 43 |
Apache Thrift (Compact Protocol) | schema.thrift |
22 | 39 | 41 | 40 |
JSON | None | 86 | 86 | 99 | 88 |
BSON | None | 121 | 104 | 129 | 101 |
CBOR | None | 53 | 73 | 72 | 76 |
FlexBuffers | None | 95 | 109 | 114 | 111 |
JSON BinPack (Schema-less) | schema.json |
52 | 72 | 71 | 76 |
MessagePack | None | 52 | 73 | 71 | 76 |
Smile | None | 63 | 82 | 82 | 84 |
UBJSON | None | 70 | 83 | 89 | 87 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 57.9 | 22 | 230 | 74.3 |
GZIP (compression level 9) | 48.6 | 41 | 59 | 19.9 |
LZ4 (compression level 9) | 56 | 41 | 97 | 32.4 |
LZMA (compression level 9) | 49.4 | 42 | 54 | 18.1 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 72.3 | 63 | 69 | 24.4 |
GZIP (compression level 9) | 85.1 | 82 | 37 | 14.2 |
LZ4 (compression level 9) | 89.7 | 82 | 58 | 21.4 |
LZMA (compression level 9) | 87.3 | 84 | 35 | 12.8 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
13 | 30 | 32 | 32 |
Apache Avro (unframed) | schema.json |
9 | 29 | 28 | 32 |
Microsoft Bond (Compact Binary v1) | schema.bond |
12 | 32 | 31 | 36 |
Cap'n Proto (Binary Encoding) | schema.capnp |
48 | 45 | 58 | 45 |
Cap'n Proto (Packed Encoding) | schema.capnp |
18 | 38 | 37 | 41 |
FlatBuffers | schema.fbs |
44 | 51 | 63 | 51 |
JSON BinPack (Schema-driven) | schema.json |
8 | 28 | 27 | 31 |
Protocol Buffers (Binary Wire Format) | schema.proto |
10 | 30 | 29 | 33 |
Apache Thrift (Compact Protocol) | schema.thrift |
11 | 31 | 30 | 35 |
JSON | None | 34 | 54 | 53 | 58 |
BSON | None | 65 | 66 | 79 | 66 |
CBOR | None | 21 | 41 | 40 | 46 |
FlexBuffers | None | 39 | 56 | 58 | 60 |
JSON BinPack (Schema-less) | schema.json |
21 | 41 | 40 | 46 |
MessagePack | None | 21 | 41 | 40 | 46 |
Smile | None | 27 | 48 | 46 | 52 |
UBJSON | None | 30 | 48 | 49 | 53 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 19.2 | 12 | 40 | 14.6 |
GZIP (compression level 9) | 34.9 | 31 | 23 | 7.6 |
LZ4 (compression level 9) | 37.2 | 31 | 36 | 12.8 |
LZMA (compression level 9) | 37.3 | 35 | 20 | 6.5 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 32 | 27 | 44 | 14.8 |
GZIP (compression level 9) | 48.7 | 48 | 25 | 8.7 |
LZ4 (compression level 9) | 50.3 | 46 | 39 | 13.2 |
LZMA (compression level 9) | 52.7 | 52 | 20 | 7.2 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
398 | 247 | 287 | 248 |
Apache Avro (unframed) | schema.json |
400 | 247 | 289 | 248 |
Microsoft Bond (Compact Binary v1) | schema.bond |
417 | 270 | 306 | 266 |
Cap'n Proto (Binary Encoding) | schema.capnp |
568 | 329 | 416 | 315 |
Cap'n Proto (Packed Encoding) | schema.capnp |
470 | 329 | 369 | 326 |
FlatBuffers | schema.fbs |
584 | 340 | 429 | 331 |
JSON BinPack (Schema-driven) | schema.json |
306 | 254 | 272 | 251 |
Protocol Buffers (Binary Wire Format) | schema.proto |
413 | 261 | 302 | 264 |
Apache Thrift (Compact Protocol) | schema.thrift |
415 | 259 | 302 | 261 |
JSON | None | 573 | 327 | 418 | 341 |
BSON | None | 596 | 360 | 454 | 373 |
CBOR | None | 523 | 320 | 403 | 331 |
FlexBuffers | None | 598 | 406 | 475 | 400 |
JSON BinPack (Schema-less) | schema.json |
514 | 330 | 396 | 335 |
MessagePack | None | 517 | 331 | 398 | 337 |
Smile | None | 521 | 335 | 403 | 341 |
UBJSON | None | 557 | 348 | 428 | 354 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 441.2 | 415 | 278 | 82.5 |
GZIP (compression level 9) | 281.8 | 261 | 93 | 36.7 |
LZ4 (compression level 9) | 330.2 | 302 | 157 | 55.5 |
LZMA (compression level 9) | 278.9 | 264 | 83 | 32.7 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 546.6 | 523 | 84 | 34.5 |
GZIP (compression level 9) | 347.1 | 335 | 86 | 26.9 |
LZ4 (compression level 9) | 422.4 | 403 | 79 | 28.9 |
LZMA (compression level 9) | 353 | 341 | 69 | 23.4 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
2143 | 1282 | 1754 | 1302 |
Apache Avro (unframed) | schema.json |
2162 | 1296 | 1772 | 1316 |
Microsoft Bond (Compact Binary v1) | schema.bond |
2256 | 1385 | 1860 | 1398 |
Cap'n Proto (Binary Encoding) | schema.capnp |
3152 | 1627 | 2230 | 1566 |
Cap'n Proto (Packed Encoding) | schema.capnp |
2549 | 1668 | 2162 | 1668 |
FlatBuffers | schema.fbs |
3116 | 1686 | 2290 | 1627 |
JSON BinPack (Schema-driven) | schema.json |
1468 | 1172 | 1357 | 1139 |
Protocol Buffers (Binary Wire Format) | schema.proto |
2225 | 1370 | 1832 | 1371 |
Apache Thrift (Compact Protocol) | schema.thrift |
2230 | 1337 | 1815 | 1352 |
JSON | None | 3048 | 1556 | 2204 | 1586 |
BSON | None | 3283 | 1782 | 2449 | 1762 |
CBOR | None | 2754 | 1555 | 2164 | 1582 |
FlexBuffers | None | 3049 | 1966 | 2560 | 1936 |
JSON BinPack (Schema-less) | schema.json |
2619 | 1633 | 2179 | 1640 |
MessagePack | None | 2749 | 1600 | 2163 | 1615 |
Smile | None | 2620 | 1581 | 2169 | 1621 |
UBJSON | None | 2977 | 1658 | 2277 | 1665 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 2366.8 | 2230 | 1684 | 490.1 |
GZIP (compression level 9) | 1424.8 | 1370 | 514 | 176.8 |
LZ4 (compression level 9) | 1896.9 | 1832 | 933 | 274.0 |
LZMA (compression level 9) | 1415.4 | 1371 | 529 | 162.2 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 2864.4 | 2754 | 664 | 229.1 |
GZIP (compression level 9) | 1682.1 | 1633 | 411 | 134.5 |
LZ4 (compression level 9) | 2280.1 | 2179 | 397 | 149.6 |
LZMA (compression level 9) | 1688.7 | 1640 | 354 | 113.9 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
242 | 93 | 120 | 98 |
Apache Avro (unframed) | schema.json |
242 | 93 | 120 | 98 |
Microsoft Bond (Compact Binary v1) | schema.bond |
295 | 159 | 194 | 154 |
Cap'n Proto (Binary Encoding) | schema.capnp |
608 | 195 | 269 | 180 |
Cap'n Proto (Packed Encoding) | schema.capnp |
376 | 181 | 215 | 180 |
FlatBuffers | schema.fbs |
636 | 279 | 365 | 247 |
JSON BinPack (Schema-driven) | schema.json |
132 | 129 | 144 | 123 |
Protocol Buffers (Binary Wire Format) | schema.proto |
284 | 155 | 195 | 152 |
Apache Thrift (Compact Protocol) | schema.thrift |
283 | 113 | 137 | 115 |
JSON | None | 1049 | 411 | 548 | 425 |
BSON | None | 1084 | 442 | 577 | 453 |
CBOR | None | 923 | 435 | 566 | 434 |
FlexBuffers | None | 890 | 559 | 664 | 552 |
JSON BinPack (Schema-less) | schema.json |
748 | 481 | 557 | 465 |
MessagePack | None | 919 | 458 | 565 | 443 |
Smile | None | 870 | 453 | 558 | 450 |
UBJSON | None | 1008 | 464 | 582 | 458 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 344.2 | 284 | 504 | 160.4 |
GZIP (compression level 9) | 155.2 | 155 | 186 | 55.6 |
LZ4 (compression level 9) | 195.4 | 194 | 245 | 76.0 |
LZMA (compression level 9) | 149.7 | 152 | 149 | 45.4 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 920.3 | 919 | 336 | 98.3 |
GZIP (compression level 9) | 470.3 | 458 | 124 | 38.8 |
LZ4 (compression level 9) | 581.3 | 566 | 107 | 34.8 |
LZMA (compression level 9) | 465 | 453 | 118 | 36.7 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
89 | 105 | 108 | 108 |
Apache Avro (unframed) | schema.json |
92 | 104 | 111 | 107 |
Microsoft Bond (Compact Binary v1) | schema.bond |
221 | 226 | 237 | 219 |
Cap'n Proto (Binary Encoding) | schema.capnp |
304 | 170 | 209 | 158 |
Cap'n Proto (Packed Encoding) | schema.capnp |
149 | 148 | 157 | 151 |
FlatBuffers | schema.fbs |
464 | 302 | 390 | 257 |
JSON BinPack (Schema-driven) | schema.json |
73 | 94 | 92 | 97 |
Protocol Buffers (Binary Wire Format) | schema.proto |
109 | 129 | 128 | 132 |
Apache Thrift (Compact Protocol) | schema.thrift |
134 | 142 | 153 | 142 |
JSON | None | 1507 | 649 | 926 | 682 |
BSON | None | 1327 | 666 | 933 | 694 |
CBOR | None | 1176 | 640 | 874 | 667 |
FlexBuffers | None | 1389 | 869 | 1140 | 873 |
JSON BinPack (Schema-less) | schema.json |
1085 | 678 | 886 | 688 |
MessagePack | None | 1172 | 670 | 872 | 678 |
Smile | None | 1090 | 683 | 886 | 701 |
UBJSON | None | 1268 | 692 | 936 | 710 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 181.7 | 134 | 391 | 121.7 |
GZIP (compression level 9) | 157.8 | 142 | 208 | 63.7 |
LZ4 (compression level 9) | 176.1 | 153 | 298 | 88.0 |
LZMA (compression level 9) | 152.3 | 142 | 160 | 50.6 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 1215.3 | 1176 | 304 | 107.9 |
GZIP (compression level 9) | 699.7 | 678 | 229 | 70.8 |
LZ4 (compression level 9) | 932.4 | 886 | 268 | 88.2 |
LZMA (compression level 9) | 715.9 | 694 | 206 | 65.5 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
165 | 179 | 184 | 183 |
Apache Avro (unframed) | schema.json |
148 | 163 | 167 | 166 |
Microsoft Bond (Compact Binary v1) | schema.bond |
197 | 209 | 216 | 213 |
Cap'n Proto (Binary Encoding) | schema.capnp |
320 | 236 | 288 | 222 |
Cap'n Proto (Packed Encoding) | schema.capnp |
206 | 219 | 225 | 220 |
FlatBuffers | schema.fbs |
384 | 307 | 367 | 285 |
JSON BinPack (Schema-driven) | schema.json |
113 | 134 | 132 | 137 |
Protocol Buffers (Binary Wire Format) | schema.proto |
188 | 199 | 207 | 203 |
Apache Thrift (Compact Protocol) | schema.thrift |
191 | 199 | 209 | 202 |
JSON | None | 494 | 341 | 470 | 361 |
BSON | None | 480 | 394 | 471 | 395 |
CBOR | None | 383 | 347 | 394 | 339 |
FlexBuffers | None | 660 | 502 | 590 | 483 |
JSON BinPack (Schema-less) | schema.json |
349 | 331 | 362 | 321 |
MessagePack | None | 382 | 358 | 393 | 350 |
Smile | None | 412 | 389 | 418 | 372 |
UBJSON | None | 439 | 382 | 446 | 379 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 212.4 | 191 | 271 | 80.7 |
GZIP (compression level 9) | 205 | 199 | 173 | 46.1 |
LZ4 (compression level 9) | 221.7 | 209 | 235 | 65.3 |
LZMA (compression level 9) | 203.4 | 203 | 148 | 38.9 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 443.6 | 412 | 311 | 96.8 |
GZIP (compression level 9) | 386.1 | 382 | 171 | 51.9 |
LZ4 (compression level 9) | 439.1 | 418 | 228 | 70.1 |
LZMA (compression level 9) | 377 | 372 | 162 | 49.1 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
176 | 168 | 184 | 163 |
Apache Avro (unframed) | schema.json |
156 | 156 | 168 | 156 |
Microsoft Bond (Compact Binary v1) | schema.bond |
182 | 174 | 188 | 176 |
Cap'n Proto (Binary Encoding) | schema.capnp |
296 | 216 | 265 | 203 |
Cap'n Proto (Packed Encoding) | schema.capnp |
204 | 204 | 214 | 205 |
FlatBuffers | schema.fbs |
328 | 251 | 297 | 235 |
JSON BinPack (Schema-driven) | schema.json |
100 | 119 | 119 | 119 |
Protocol Buffers (Binary Wire Format) | schema.proto |
173 | 171 | 183 | 172 |
Apache Thrift (Compact Protocol) | schema.thrift |
177 | 171 | 184 | 173 |
JSON | None | 375 | 250 | 302 | 252 |
BSON | None | 422 | 315 | 354 | 303 |
CBOR | None | 340 | 275 | 298 | 256 |
FlexBuffers | None | 488 | 376 | 420 | 357 |
JSON BinPack (Schema-less) | schema.json |
254 | 260 | 270 | 250 |
MessagePack | None | 339 | 276 | 297 | 259 |
Smile | None | 326 | 299 | 324 | 290 |
UBJSON | None | 375 | 295 | 318 | 278 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 199.1 | 177 | 228 | 66.4 |
GZIP (compression level 9) | 181.1 | 171 | 132 | 35.8 |
LZ4 (compression level 9) | 200.2 | 184 | 178 | 49.8 |
LZMA (compression level 9) | 178 | 173 | 116 | 31.4 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 363.4 | 340 | 234 | 69.3 |
GZIP (compression level 9) | 299.4 | 295 | 116 | 35.5 |
LZ4 (compression level 9) | 325.9 | 318 | 150 | 45.4 |
LZMA (compression level 9) | 284.7 | 278 | 107 | 34.5 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
1498 | 801 | 1061 | 820 |
Apache Avro (unframed) | schema.json |
1500 | 800 | 1060 | 820 |
Microsoft Bond (Compact Binary v1) | schema.bond |
1588 | 904 | 1161 | 917 |
Cap'n Proto (Binary Encoding) | schema.capnp |
2216 | 1007 | 1363 | 977 |
Cap'n Proto (Packed Encoding) | schema.capnp |
1755 | 1013 | 1281 | 1009 |
FlatBuffers | schema.fbs |
2268 | 1132 | 1512 | 1064 |
JSON BinPack (Schema-driven) | schema.json |
947 | 839 | 886 | 793 |
Protocol Buffers (Binary Wire Format) | schema.proto |
1581 | 888 | 1149 | 903 |
Apache Thrift (Compact Protocol) | schema.thrift |
1561 | 848 | 1108 | 860 |
JSON | None | 2259 | 1093 | 1520 | 1129 |
BSON | None | 2386 | 1228 | 1660 | 1236 |
CBOR | None | 1990 | 1083 | 1478 | 1099 |
FlexBuffers | None | 2320 | 1395 | 1767 | 1381 |
JSON BinPack (Schema-less) | schema.json |
1957 | 1129 | 1472 | 1139 |
MessagePack | None | 1995 | 1131 | 1483 | 1143 |
Smile | None | 1983 | 1119 | 1473 | 1138 |
UBJSON | None | 2171 | 1173 | 1572 | 1178 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 1657.1 | 1581 | 1321 | 375.5 |
GZIP (compression level 9) | 914.7 | 888 | 332 | 106.7 |
LZ4 (compression level 9) | 1175.7 | 1149 | 626 | 174.9 |
LZMA (compression level 9) | 907 | 903 | 271 | 88.5 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 2114.6 | 1995 | 429 | 165.2 |
GZIP (compression level 9) | 1179.7 | 1131 | 312 | 97.6 |
LZ4 (compression level 9) | 1557.9 | 1483 | 295 | 107.5 |
LZMA (compression level 9) | 1187.7 | 1143 | 282 | 88.2 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
369 | 84 | 97 | 87 |
Apache Avro (unframed) | schema.json |
201 | 75 | 86 | 78 |
Microsoft Bond (Compact Binary v1) | schema.bond |
462 | 177 | 235 | 161 |
Cap'n Proto (Binary Encoding) | schema.capnp |
880 | 131 | 165 | 123 |
Cap'n Proto (Packed Encoding) | schema.capnp |
519 | 120 | 136 | 119 |
FlatBuffers | schema.fbs |
960 | 288 | 389 | 248 |
JSON BinPack (Schema-driven) | schema.json |
90 | 80 | 85 | 81 |
Protocol Buffers (Binary Wire Format) | schema.proto |
454 | 197 | 252 | 172 |
Apache Thrift (Compact Protocol) | schema.thrift |
420 | 91 | 102 | 95 |
JSON | None | 1159 | 321 | 441 | 344 |
BSON | None | 1295 | 348 | 478 | 366 |
CBOR | None | 993 | 349 | 477 | 358 |
FlexBuffers | None | 942 | 522 | 629 | 510 |
JSON BinPack (Schema-less) | schema.json |
791 | 457 | 542 | 430 |
MessagePack | None | 989 | 366 | 476 | 365 |
Smile | None | 1002 | 380 | 499 | 388 |
UBJSON | None | 1117 | 374 | 489 | 377 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 483.9 | 454 | 870 | 266.4 |
GZIP (compression level 9) | 138.1 | 120 | 213 | 66.9 |
LZ4 (compression level 9) | 171.9 | 136 | 304 | 96.8 |
LZMA (compression level 9) | 129.3 | 119 | 170 | 52.7 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 1018.4 | 993 | 504 | 144.2 |
GZIP (compression level 9) | 399.4 | 374 | 174 | 60.6 |
LZ4 (compression level 9) | 512.9 | 489 | 153 | 52.0 |
LZMA (compression level 9) | 399.1 | 377 | 152 | 50.4 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
1 | 21 | 20 | 24 |
Apache Avro (unframed) | schema.json |
0 | 20 | 15 | 23 |
Microsoft Bond (Compact Binary v1) | schema.bond |
10 | 30 | 29 | 32 |
Cap'n Proto (Binary Encoding) | schema.capnp |
16 | 33 | 35 | 32 |
Cap'n Proto (Packed Encoding) | schema.capnp |
7 | 27 | 26 | 29 |
FlatBuffers | schema.fbs |
24 | 35 | 43 | 38 |
JSON BinPack (Schema-driven) | schema.json |
0 | 20 | 15 | 23 |
Protocol Buffers (Binary Wire Format) | schema.proto |
0 | 20 | 15 | 23 |
Apache Thrift (Compact Protocol) | schema.thrift |
1 | 21 | 20 | 24 |
JSON | None | 44 | 50 | 58 | 55 |
BSON | None | 29 | 46 | 48 | 49 |
CBOR | None | 25 | 45 | 44 | 48 |
FlexBuffers | None | 37 | 52 | 56 | 55 |
JSON BinPack (Schema-less) | schema.json |
25 | 45 | 44 | 49 |
MessagePack | None | 25 | 45 | 44 | 49 |
Smile | None | 30 | 50 | 49 | 54 |
UBJSON | None | 29 | 49 | 48 | 52 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 6.6 | 1 | 24 | 8.1 |
GZIP (compression level 9) | 25.2 | 21 | 15 | 5.8 |
LZ4 (compression level 9) | 24.2 | 20 | 28 | 9.3 |
LZMA (compression level 9) | 27.6 | 24 | 15 | 5.1 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 28.6 | 29 | 12 | 4.0 |
GZIP (compression level 9) | 47.4 | 46 | 7 | 2.7 |
LZ4 (compression level 9) | 47.6 | 48 | 12 | 4.0 |
LZMA (compression level 9) | 50.9 | 49 | 7 | 2.6 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
497 | 88 | 102 | 90 |
Apache Avro (unframed) | schema.json |
504 | 90 | 103 | 91 |
Microsoft Bond (Compact Binary v1) | schema.bond |
522 | 116 | 132 | 111 |
Cap'n Proto (Binary Encoding) | schema.capnp |
640 | 129 | 152 | 120 |
Cap'n Proto (Packed Encoding) | schema.capnp |
566 | 125 | 135 | 120 |
FlatBuffers | schema.fbs |
668 | 175 | 215 | 164 |
JSON BinPack (Schema-driven) | schema.json |
89 | 98 | 108 | 99 |
Protocol Buffers (Binary Wire Format) | schema.proto |
521 | 114 | 133 | 109 |
Apache Thrift (Compact Protocol) | schema.thrift |
521 | 95 | 106 | 96 |
JSON | None | 673 | 154 | 195 | 164 |
BSON | None | 699 | 160 | 204 | 167 |
CBOR | None | 627 | 147 | 192 | 160 |
FlexBuffers | None | 228 | 214 | 244 | 207 |
JSON BinPack (Schema-less) | schema.json |
185 | 175 | 202 | 177 |
MessagePack | None | 627 | 157 | 192 | 163 |
Smile | None | 604 | 168 | 199 | 173 |
UBJSON | None | 658 | 163 | 198 | 169 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 503.1 | 521 | 579 | 157.2 |
GZIP (compression level 9) | 114.4 | 114 | 87 | 25.7 |
LZ4 (compression level 9) | 131.8 | 132 | 113 | 33.8 |
LZMA (compression level 9) | 111.1 | 109 | 74 | 21.6 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 518.3 | 627 | 514 | 199.5 |
GZIP (compression level 9) | 169.1 | 163 | 67 | 20.0 |
LZ4 (compression level 9) | 204.4 | 199 | 52 | 16.7 |
LZMA (compression level 9) | 173.7 | 169 | 47 | 14.6 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
1 | 21 | 20 | 24 |
Apache Avro (unframed) | schema.json |
1 | 21 | 20 | 24 |
Microsoft Bond (Compact Binary v1) | schema.bond |
9 | 27 | 28 | 29 |
Cap'n Proto (Binary Encoding) | schema.capnp |
48 | 33 | 45 | 34 |
Cap'n Proto (Packed Encoding) | schema.capnp |
12 | 29 | 31 | 31 |
FlatBuffers | schema.fbs |
60 | 53 | 64 | 49 |
JSON BinPack (Schema-driven) | schema.json |
1 | 21 | 20 | 24 |
Protocol Buffers (Binary Wire Format) | schema.proto |
8 | 28 | 27 | 31 |
Apache Thrift (Compact Protocol) | schema.thrift |
8 | 26 | 27 | 28 |
JSON | None | 67 | 68 | 74 | 70 |
BSON | None | 71 | 74 | 82 | 74 |
CBOR | None | 51 | 62 | 70 | 63 |
FlexBuffers | None | 77 | 76 | 88 | 80 |
JSON BinPack (Schema-less) | schema.json |
51 | 61 | 70 | 64 |
MessagePack | None | 51 | 62 | 70 | 64 |
Smile | None | 59 | 68 | 73 | 71 |
UBJSON | None | 59 | 66 | 72 | 67 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 16.4 | 8 | 59 | 20.6 |
GZIP (compression level 9) | 28.8 | 27 | 32 | 9.4 |
LZ4 (compression level 9) | 31.3 | 27 | 44 | 13.7 |
LZMA (compression level 9) | 30.4 | 29 | 25 | 7.4 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 59.9 | 59 | 26 | 9.7 |
GZIP (compression level 9) | 67 | 66 | 15 | 5.6 |
LZ4 (compression level 9) | 75 | 72 | 18 | 6.6 |
LZMA (compression level 9) | 69 | 67 | 17 | 5.9 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
46 | 54 | 56 | 57 |
Apache Avro (unframed) | schema.json |
47 | 55 | 57 | 58 |
Microsoft Bond (Compact Binary v1) | schema.bond |
49 | 57 | 59 | 60 |
Cap'n Proto (Binary Encoding) | schema.capnp |
88 | 77 | 90 | 75 |
Cap'n Proto (Packed Encoding) | schema.capnp |
62 | 68 | 70 | 73 |
FlatBuffers | schema.fbs |
88 | 78 | 91 | 78 |
JSON BinPack (Schema-driven) | schema.json |
46 | 54 | 56 | 57 |
Protocol Buffers (Binary Wire Format) | schema.proto |
47 | 55 | 57 | 58 |
Apache Thrift (Compact Protocol) | schema.thrift |
48 | 56 | 58 | 59 |
JSON | None | 63 | 70 | 72 | 73 |
BSON | None | 78 | 79 | 85 | 80 |
CBOR | None | 55 | 63 | 65 | 65 |
FlexBuffers | None | 70 | 78 | 81 | 80 |
JSON BinPack (Schema-less) | schema.json |
55 | 63 | 65 | 65 |
MessagePack | None | 55 | 63 | 65 | 65 |
Smile | None | 61 | 69 | 71 | 72 |
UBJSON | None | 62 | 70 | 72 | 72 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 57.9 | 48 | 42 | 16.8 |
GZIP (compression level 9) | 61.6 | 56 | 24 | 9.4 |
LZ4 (compression level 9) | 66 | 58 | 35 | 13.7 |
LZMA (compression level 9) | 63.9 | 59 | 21 | 8.2 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 62.3 | 61 | 23 | 8.2 |
GZIP (compression level 9) | 69.3 | 69 | 16 | 6.4 |
LZ4 (compression level 9) | 72 | 71 | 20 | 7.5 |
LZMA (compression level 9) | 71.3 | 72 | 15 | 6.2 |
Serialization Format | Schema | Uncompressed | GZIP (compression level 9) | LZ4 (compression level 9) | LZMA (compression level 9) |
---|---|---|---|---|---|
ASN.1 (PER Unaligned) | schema.asn |
4 | 24 | 23 | 27 |
Apache Avro (unframed) | schema.json |
7 | 27 | 26 | 29 |
Microsoft Bond (Compact Binary v1) | schema.bond |
17 | 34 | 36 | 36 |
Cap'n Proto (Binary Encoding) | schema.capnp |
80 | 44 | 59 | 45 |
Cap'n Proto (Packed Encoding) | schema.capnp |
23 | 37 | 42 | 41 |
FlatBuffers | schema.fbs |
84 | 71 | 94 | 69 |
JSON BinPack (Schema-driven) | schema.json |
1 | 21 | 20 | 24 |
Protocol Buffers (Binary Wire Format) | schema.proto |
14 | 34 | 33 | 36 |
Apache Thrift (Compact Protocol) | schema.thrift |
14 | 31 | 33 | 34 |
JSON | None | 98 | 90 | 99 | 92 |
BSON | None | 104 | 99 | 109 | 100 |
CBOR | None | 68 | 80 | 87 | 81 |
FlexBuffers | None | 102 | 106 | 116 | 109 |
JSON BinPack (Schema-less) | schema.json |
68 | 80 | 87 | 82 |
MessagePack | None | 68 | 81 | 87 | 82 |
Smile | None | 78 | 88 | 92 | 92 |
UBJSON | None | 80 | 84 | 94 | 89 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 27.1 | 14 | 83 | 30.0 |
GZIP (compression level 9) | 35.9 | 34 | 50 | 14.0 |
LZ4 (compression level 9) | 40.7 | 33 | 74 | 21.8 |
LZMA (compression level 9) | 37.9 | 36 | 45 | 12.7 |
Category | Average | Median | Range | Std.dev |
---|---|---|---|---|
Uncompressed | 81.1 | 78 | 36 | 14.6 |
GZIP (compression level 9) | 88.3 | 84 | 26 | 9.5 |
LZ4 (compression level 9) | 96 | 92 | 29 | 10.9 |
LZMA (compression level 9) | 90.7 | 89 | 28 | 9.8 |
The benchmark has only been ran on macOS and GNU/Linux. The following dependencies must be available in order to locally run the benchmark:
- GNU Make
- Awk
- CMake
- Clojure's
clj
command line tool - Python 3 and
pip
- Node.js
clang
gzip
- XZ Utils
xxd
jq
Build the project dependencies by running the following command:
make deps
The benchmark can then be ran locally using the following command:
make all
Running the benchmark including the ASN.1 serialization formats requires
setting the ASN1STEP
variable to the path to a license-activated asn1step
instance. For example:
make all ASN1STEP=/Applications/asn1step/asn1step/macosx-x86-64.trial/10.0.2/bin/asn1step
This work is released under the Apache-2.0 license.