-
Notifications
You must be signed in to change notification settings - Fork 562
Home
OS:Mac OS X
JVM:Oracle Corporation 11.0.19
CPU:2.6 GHz 6-Core Intel Core i7 os-arch:Darwin Kernel Version 21.6.0
Cores (incl HT):12
This test focusses on en/decoding of a cyclefree data structure, but the featureset of the libraries compared differs a lot:
- some serializers support cycle detection/object sharing others just write non-cyclic tree structures
- some include full metadata in serialized output, some don’t
- some are cross platform, some are language specific
- some are text based, some are binary,
- some support versioning forward/backward, both, some don’t
(See ToolBehavior)
Other test data will yield different results (e.g. adding a non ascii char to every string :-) ). However the results give a raw estimation of library performance.
Benchmarks serializers
- Only cycle free tree structures. An object referenced twice will be serialized twice.
- no manual optimizations.
- schema is known in advance (pre registration or even class generation). (Not all might make use of that)
Ser Time+Deser Time (ns)
Size, Compressed size [light] in bytes
create ser deser total size dfl
fury-fastest 59 220 222 442 278 165
fury 56 269 239 508 257 163
fury-auto-flat 53 282 264 547 293 198
colfer 65 275 357 633 241 152
json-array/dsl-json/databind 48 511 664 1175 296 187
protostuff 83 608 653 1261 242 153
fst-flat-pre 58 618 766 1384 254 168
protobuf 198 875 527 1402 242 152
kryo-registered-flat 52 740 735 1476 218 140
thrift-compact 78 840 643 1483 243 152
json/dsl-json/databind 47 565 1082 1647 488 271
msgpack/databind 51 564 1182 1746 236 150
json-array/fastjson/databind 50 921 836 1756 284 171
thrift 77 1315 626 1942 352 201
kryo-auto-flat 51 917 1044 1960 273 184
smile-col/jackson/databind 48 817 1177 1994 255 168
flatbuffers 48 1445 679 2124 424 234
cbor-col/jackson/databind 52 851 1305 2156 252 165
capnproto 49 1397 839 2236 400 210
avro-fastserde-generic 344 1321 1049 2371 224 136
avro-generic 370 1380 1050 2430 224 136
protobuf/jacksonafterburner/databind 53 1044 1403 2446 242 151
avro-specific 82 1248 1229 2477 224 136
json-col/jackson/databind 50 1049 1458 2507 296 187
cbor/jackson+afterburner/databind 48 1044 1496 2540 398 251
smile/jackson+afterburner/databind 54 1153 1409 2561 355 259
avro-fastserde-specific 83 1241 1406 2647 224 136
json/fastjson/databind 47 1324 1456 2780 489 271
smile/jackson/databind 49 1204 1683 2887 341 248
protobuf/jackson/databind 48 1174 1742 2916 242 151
cbor/jackson/databind 50 1138 1824 2962 398 251
json/jackson+afterburner/databind 51 1264 1699 2963 488 271
json/jackson-jr/databind 48 1368 1898 3266 471 263
json/jackson/databind 49 1344 2053 3397 488 271
json/protostuff-runtime 52 1558 1998 3556 472 252
xml/jackson/databind 48 2953 4978 7931 686 296
json/gson/databind 47 4657 4021 8677 489 268
xml/xstream+c 50 4965 10348 15313 490 253
json/javax-tree/glassfish 1250 6867 10764 17631 488 273
xml/exi-manual 48 12710 11167 23877 340 331
java-built-in 57 5357 29617 34974 892 520
json/protobuf 210 6494 60857 67351 500 262
json/json-lib/databind 54 22379 65114 87493 488 273
Contains serializer(-configurations)
- supporting full object graph write/read. Object graph may contain cycles. If an Object is referenced twice, it will be so after deserialization.
- nothing is known in advance, no class generation, no preregistering of classes. Everything is captured at runtime using e.g. reflection.
- note this usually cannot be used cross language, however JSON/XML formats may enable cross language deserialization.
Ser Time+Deser Time (ns)
Size, Compressed size [light] in bytes
create ser deser total size +dfl
fury-registered 53 896 317 1212 259 165
fury-auto 55 963 340 1303 295 200
protostuff-graph 78 1007 679 1686 242 153
protostuff-graph-runtime 48 1096 734 1830 244 154
fst 53 2073 1739 3813 319 208
jboss-marshalling-river-ct 49 2724 1660 4384 301 203
kryo-registered 52 3782 1193 4974 236 153
kryo-auto 51 3651 1500 5151 291 198
hessian 51 3619 5434 9053 504 319
jboss-marshalling-river 53 3954 6729 10682 608 395
jboss-serialization 47 6357 6076 12433 935 587
jboss-marshalling-serial 51 8568 9701 18269 859 503
json/flexjson/databind 47 11461 23434 34895 506 282
java-built-in-serializer 53 5491 32069 37560 892 520
stephenerialization 68 7564 38477 46041 1096 522
Contains serializer(-configurations)
- Only cycle free tree structures. An object referenced twice will be serialized twice.
- schema is known in advance (pre registration, intermediate message description languages, class generation).
Ser Time+Deser Time (ns)
Size, Compressed size [light] in bytes
create ser deser total size +dfl
colfer 65 275 357 633 241 152
protobuf/protostuff 78 606 642 1248 242 152
protobuf/protostuff-runtime 50 696 689 1385 244 153
protobuf 198 875 527 1402 242 152
thrift-compact 78 840 643 1483 243 152
msgpack/databind 51 564 1182 1746 236 150
thrift 77 1315 626 1942 352 201
flatbuffers 48 1445 679 2124 424 234
capnproto 49 1397 839 2236 400 210
avro-fastserde-generic 344 1321 1049 2371 224 136
avro-generic 370 1380 1050 2430 224 136
avro-specific 82 1248 1229 2477 224 136
avro-fastserde-specific 83 1241 1406 2647 224 136
cbor/jackson/databind 50 1138 1824 2962 398 251
hessian 51 3619 5434 9053 504 319
- text format based. Usually can be read by anybody. Frequently inline schema inside data.
- Mixed regarding required preparation, object graph awareness (references).
Ser Time+Deser Time (ns)
Size, Compressed size [light] in bytes
create ser deser total size dfl
json-array/dsl-json/databind 48 511 664 1175 296 187
json/dsl-json/databind 47 565 1082 1647 488 271
json-array/fastjson/databind 50 921 836 1756 284 171
smile-col/jackson/databind 48 817 1177 1994 255 168
cbor-col/jackson/databind 52 851 1305 2156 252 165
json-col/jackson/databind 50 1049 1458 2507 296 187
json/fastjson/databind 47 1324 1456 2780 489 271
json/jackson-jr/databind 48 1368 1898 3266 471 263
json/jackson/databind 49 1344 2053 3397 488 271
json/protostuff-runtime 52 1558 1998 3556 472 252
xml/jackson/databind 48 2953 4978 7931 686 296
json/gson/databind 47 4657 4021 8677 489 268
xml/xstreamc 50 4965 10348 15313 490 253
json/javax-tree/glassfish 1250 6867 10764 17631 488 273
xml/exi-manual 48 12710 11167 23877 340 331
json/flexjson/databind 47 11461 23434 34895 506 282
json/protobuf 210 6494 60857 67351 500 262
json/json-lib/databind 54 22379 65114 87493 488 273
all flavours of manually optimized serializers. Handcoded and hardwired to exactly the benchmark’s message structures.
- illustrates what’s possible, at what level generic approaches can be optimized in case
Ser Time+Deser Time (ns)
Size, Compressed size [light] in bytes
create ser deser total size dfl
datakernel 59 427 435 861 228 137
kryo-manual 55 472 483 955 213 136
protostuff-manual 49 567 632 1199 242 153
wobly-compact 38 768 507 1274 228 143
wobly 38 653 672 1325 254 155
kryo-opt 49 656 700 1357 215 136
java-manual 51 917 715 1632 258 151
msgpack/manual 51 595 1143 1738 236 150
avro-specific-manual 80 1180 1049 2228 224 136
cbor/jackson/manual 48 913 1351 2264 389 245
avro-fastserde-generic-manual 326 1278 1010 2288 224 136
avro-generic-manual 339 1349 956 2305 224 136
smile/jackson/manual 48 1126 1207 2334 344 252
jboss-marshalling-river-ct-manual 50 1636 957 2594 292 171
avro-fastserde-specific-manual 83 1265 1427 2693 224 136
json/jackson/manual 49 1076 1648 2724 471 262
json/protostuff-manual 48 1355 1916 3271 452 242
xml/aalto-manual 48 2097 2735 4832 656 314
jboss-marshalling-river-manual 55 1632 4663 6295 484 245
json/gson/manual 48 3283 3545 6828 471 262
xml/woodstox-manual 49 2559 4390 6949 656 314
bson/mongodb/manual 48 2434 6087 8521 498 286
json/json-smart/manual-tree 49 5132 3938 9071 498 274
json/gson/manual-tree 49 5050 5262 10312 488 268
xml/xstreamc-aalto 48 3476 8101 11576 528 282
xml/fastinfo-manual 49 8087 4404 12490 380 290
xml/xstream+c-fastinfo 49 6537 6571 13108 348 271
xml/xstream+c-woodstox 48 3998 9279 13277 528 282
xml/javolution/manual 48 4668 8880 13547 507 273
json/org.json/manual-tree 49 6207 7365 13572 488 268
json/javax-stream/glassfish 47 4767 9133 13900 471 262
json/json.simple/manual 48 6280 8049 14330 498 274
json/svenson/databind 48 3559 10801 14361 501 271
json/argo/manual-tree 49 13444 14802 28247 488 273
json/jsonij/manual-jpath 48 18476 10616 29092 484 261
shows performance vs convenience of manually-selected libs.
- cycle free, schema known at compile time, manual optimization: kryo-manual, msgpack/manual
- cycle free, schema known at compile time: protostuff, fst-flat-pre, kryo-flat-pre. (note: protostuff uses class generation while the other two just require a list of classes to be written)
- cycle free, schema UNKNOWN at compile time: fst-flat, kryo-flat, protostuff-runtime, msgpack/databind
- full object graph awareness, schema UNKNOWN at compile time: fst, kryo.
Ser Time+Deser Time (ns)
Size, Compressed size [light] in bytes
create ser deser total size +dfl
kryo-manual 55 472 483 955 213 136
protostuff 83 608 653 1261 242 153
fst-flat-pre 58 618 766 1384 254 168
protostuff-runtime 48 746 642 1389 244 154
msgpack/manual 51 595 1143 1738 236 150
msgpack/databind 51 564 1182 1746 236 150
fst-flat 50 1055 1323 2377 317 207
fst 53 2073 1739 3813 319 208
create ser deser total size +dfl fury-fastest 59 220 222 442 278 165 fury 56 269 239 508 257 163 fury-auto-flat 53 282 264 547 293 198 colfer 65 275 357 633 241 152 datakernel 59 427 435 861 228 137 kryo-manual 55 472 483 955 213 136 json-array/dsl-json/databind 48 511 664 1175 296 187 protostuff-manual 49 567 632 1199 242 153 fury-registered 53 896 317 1212 259 165 protobuf/protostuff 78 606 642 1248 242 152 protostuff 83 608 653 1261 242 153 wobly-compact 38 768 507 1274 228 143 fury-auto 55 963 340 1303 295 200 wobly 38 653 672 1325 254 155 kryo-opt 49 656 700 1357 215 136 fst-flat-pre 58 618 766 1384 254 168 protobuf/protostuff-runtime 50 696 689 1385 244 153 protostuff-runtime 48 746 642 1389 244 154 protobuf 198 875 527 1402 242 152 kryo-registered-flat 52 740 735 1476 218 140 thrift-compact 78 840 643 1483 243 152 java-manual 51 917 715 1632 258 151 json/dsl-json/databind 47 565 1082 1647 488 271 protostuff-graph 78 1007 679 1686 242 153 msgpack/manual 51 595 1143 1738 236 150 msgpack/databind 51 564 1182 1746 236 150 json-array/fastjson/databind 50 921 836 1756 284 171 protostuff-graph-runtime 48 1096 734 1830 244 154 thrift 77 1315 626 1942 352 201 kryo-auto-flat 51 917 1044 1960 273 184 smile-col/jackson/databind 48 817 1177 1994 255 168 flatbuffers 48 1445 679 2124 424 234 cbor-col/jackson/databind 52 851 1305 2156 252 165 avro-specific-manual 80 1180 1049 2228 224 136 capnproto 49 1397 839 2236 400 210 cbor/jackson/manual 48 913 1351 2264 389 245 avro-fastserde-generic-manual 326 1278 1010 2288 224 136 avro-generic-manual 339 1349 956 2305 224 136 smile/jackson/manual 48 1126 1207 2334 344 252 avro-fastserde-generic 344 1321 1049 2371 224 136 fst-flat 50 1055 1323 2377 317 207 avro-generic 370 1380 1050 2430 224 136 protobuf/jackson+afterburner/databind 53 1044 1403 2446 242 151 avro-specific 82 1248 1229 2477 224 136 json-col/jackson/databind 50 1049 1458 2507 296 187 cbor/jackson+afterburner/databind 48 1044 1496 2540 398 251 smile/jackson+afterburner/databind 54 1153 1409 2561 355 259 jboss-marshalling-river-ct-manual 50 1636 957 2594 292 171 avro-fastserde-specific 83 1241 1406 2647 224 136 avro-fastserde-specific-manual 83 1265 1427 2693 224 136 json/jackson/manual 49 1076 1648 2724 471 262 json/fastjson/databind 47 1324 1456 2780 489 271 smile/jackson/databind 49 1204 1683 2887 341 248 protobuf/jackson/databind 48 1174 1742 2916 242 151 cbor/jackson/databind 50 1138 1824 2962 398 251 json/jackson+afterburner/databind 51 1264 1699 2963 488 271 json/jackson-jr/databind 48 1368 1898 3266 471 263 json/protostuff-manual 48 1355 1916 3271 452 242 json/jackson/databind 49 1344 2053 3397 488 271 json/protostuff-runtime 52 1558 1998 3556 472 252 fst 53 2073 1739 3813 319 208 jboss-marshalling-river-ct 49 2724 1660 4384 301 203 xml/aalto-manual 48 2097 2735 4832 656 314 kryo-registered 52 3782 1193 4974 236 153 kryo-auto 51 3651 1500 5151 291 198 jboss-marshalling-river-manual 55 1632 4663 6295 484 245 json/gson/manual 48 3283 3545 6828 471 262 xml/woodstox-manual 49 2559 4390 6949 656 314 xml/jackson/databind 48 2953 4978 7931 686 296 bson/mongodb/manual 48 2434 6087 8521 498 286 json/gson/databind 47 4657 4021 8677 489 268 hessian 51 3619 5434 9053 504 319 json/json-smart/manual-tree 49 5132 3938 9071 498 274 json/gson/manual-tree 49 5050 5262 10312 488 268 jboss-marshalling-river 53 3954 6729 10682 608 395 xml/xstream+c-aalto 48 3476 8101 11576 528 282 jboss-serialization 47 6357 6076 12433 935 587 xml/fastinfo-manual 49 8087 4404 12490 380 290 xml/xstream+c-fastinfo 49 6537 6571 13108 348 271 xml/xstream+c-woodstox 48 3998 9279 13277 528 282 xml/javolution/manual 48 4668 8880 13547 507 273 json/org.json/manual-tree 49 6207 7365 13572 488 268 json/javax-stream/glassfish 47 4767 9133 13900 471 262 json/json.simple/manual 48 6280 8049 14330 498 274 json/svenson/databind 48 3559 10801 14361 501 271 xml/xstream+c 50 4965 10348 15313 490 253 json/javax-tree/glassfish 1250 6867 10764 17631 488 273 jboss-marshalling-serial 51 8568 9701 18269 859 503 xml/exi-manual 48 12710 11167 23877 340 331 json/argo/manual-tree 49 13444 14802 28247 488 273 json/jsonij/manual-jpath 48 18476 10616 29092 484 261 json/flexjson/databind 47 11461 23434 34895 506 282 java-built-in 57 5357 29617 34974 892 520 java-built-in-serializer 53 5491 32069 37560 892 520 stephenerialization 68 7564 38477 46041 1096 522 json/protobuf 210 6494 60857 67351 500 262 json/json-lib/databind 54 22379 65114 87493 488 273
Effort Format Structure Misc fury-fastest CLASSES_KNOWN BINARY FLAT_TREE [] class registration, no references, no compression (fastest) fury CLASSES_KNOWN BINARY FLAT_TREE [] class registration, no references (typical usage) fury-auto-flat ZERO_KNOWLEDGE BINARY FLAT_TREE [] no class registration, no references colfer CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] generated code datakernel MANUAL_OPT BINARY FLAT_TREE [] manually optimized kryo-manual MANUAL_OPT BINARY FLAT_TREE [] complete manual optimization json-array/dsl-json/databind CLASSES_KNOWN JSON FLAT_TREE [] JSON array format - all properties without names. protostuff-manual MANUAL_OPT BINARY FLAT_TREE [] manual fury-registered CLASSES_KNOWN BINARY FULL_GRAPH [] class registration, references (typical usage) protobuf/protostuff CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] protobuf + generated code protostuff CLASSES_KNOWN BINARY FLAT_TREE [] generated code wobly-compact MANUAL_OPT BINARY FLAT_TREE [] fury-auto ZERO_KNOWLEDGE BINARY FULL_GRAPH [] no class registration, references wobly MANUAL_OPT BINARY FLAT_TREE [] kryo-opt MANUAL_OPT BINARY FLAT_TREE [] manual optimization fst-flat-pre CLASSES_KNOWN BINARY FLAT_TREE [] fst in unshared mode with preregistered classes protobuf/protostuff-runtime ZERO_KNOWLEDGE BIN_CROSSLANG FLAT_TREE [] protobuf + reflection protostuff-runtime ZERO_KNOWLEDGE BINARY FLAT_TREE [] reflection protobuf CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] kryo-registered-flat CLASSES_KNOWN BINARY FLAT_TREE [] class registration, no references (typical usage) thrift-compact CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] java-manual MANUAL_OPT BINARY FLAT_TREE [] json/dsl-json/databind CLASSES_KNOWN JSON FLAT_TREE [] Serializes all properties with exact names. protostuff-graph CLASSES_KNOWN BINARY FULL_GRAPH [] graph + generated code msgpack/manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [] uses positional (column) layout (instead of Maps std impl uses) to eliminate use of names msgpack/databind CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] uses positional (column) layout (instead of Maps std impl uses) to eliminate use of names json-array/fastjson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] protostuff-graph-runtime ZERO_KNOWLEDGE BINARY FULL_GRAPH [] graph + reflection thrift CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] kryo-auto-flat ZERO_KNOWLEDGE BINARY FLAT_TREE [] no class registration, no references smile-col/jackson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] uses positional (column) layout to eliminate use of names flatbuffers CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] cbor-col/jackson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] uses positional (column) layout to eliminate use of names avro-specific-manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] capnproto CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] cbor/jackson/manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [] avro-fastserde-generic-manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] avro-generic-manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] smile/jackson/manual MANUAL_OPT BINARY FLAT_TREE [] avro-fastserde-generic CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] fst-flat ZERO_KNOWLEDGE BINARY FLAT_TREE [] fst default, but unshared mode avro-generic CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] protobuf/jackson+afterburner/databind CLASSES_KNOWN BINARY FLAT_TREE [] avro-specific CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] json-col/jackson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] uses positional (column) layout to eliminate use of names cbor/jackson+afterburner/databind ZERO_KNOWLEDGE BINARY FLAT_TREE [] uses bytecode generation to reduce overhead smile/jackson+afterburner/databind ZERO_KNOWLEDGE BINARY FLAT_TREE [] uses bytecode generation to reduce overhead jboss-marshalling-river-ct-manual MANUAL_OPT BINARY FULL_GRAPH [] full graph preregistered classes, manual optimization avro-fastserde-specific CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] avro-fastserde-specific-manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] json/jackson/manual MANUAL_OPT JSON FLAT_TREE [] json/fastjson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] smile/jackson/databind ZERO_KNOWLEDGE BINARY FLAT_TREE [] protobuf/jackson/databind CLASSES_KNOWN BINARY FLAT_TREE [] cbor/jackson/databind ZERO_KNOWLEDGE BIN_CROSSLANG FLAT_TREE [] json/jackson+afterburner/databind ZERO_KNOWLEDGE BINARY FLAT_TREE [] uses bytecode generation to reduce overhead json/jackson-jr/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] json/protostuff-manual MANUAL_OPT JSON FLAT_TREE [] json + manual json/jackson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] json/protostuff-runtime ZERO_KNOWLEDGE JSON FLAT_TREE [] json + reflection fst ZERO_KNOWLEDGE BINARY FULL_GRAPH [] default: JDK serialization drop-in-replacement mode jboss-marshalling-river-ct CLASSES_KNOWN BINARY FULL_GRAPH [] full graph with preregistered classes xml/aalto-manual MANUAL_OPT XML UNKNOWN [] kryo-registered CLASSES_KNOWN BINARY FULL_GRAPH [] class registration, references (typical usage) kryo-auto ZERO_KNOWLEDGE BINARY FULL_GRAPH [] no class registration, references jboss-marshalling-river-manual MANUAL_OPT BINARY FULL_GRAPH [] full graph with manual optimizations json/gson/manual MANUAL_OPT JSON FLAT_TREE [] xml/woodstox-manual MANUAL_OPT XML UNKNOWN [] xml/jackson/databind ZERO_KNOWLEDGE XML FLAT_TREE [] bson/mongodb/manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [] json/gson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] hessian ZERO_KNOWLEDGE BIN_CROSSLANG FULL_GRAPH [] json/json-smart/manual-tree MANUAL_OPT JSON FLAT_TREE [] json/gson/manual-tree MANUAL_OPT JSON FLAT_TREE [] jboss-marshalling-river ZERO_KNOWLEDGE BINARY FULL_GRAPH [] full graph zero knowledge xml/xstream+c-aalto MANUAL_OPT XML FLAT_TREE [] jboss-serialization ZERO_KNOWLEDGE BINARY FULL_GRAPH [] xml/fastinfo-manual MANUAL_OPT XML UNKNOWN [] xml/xstream+c-fastinfo MANUAL_OPT XML FLAT_TREE [] xml/xstream+c-woodstox MANUAL_OPT XML FLAT_TREE [] xml/javolution/manual MANUAL_OPT XML FLAT_TREE [] json/org.json/manual-tree MANUAL_OPT JSON FLAT_TREE [] json/javax-stream/glassfish MANUAL_OPT JSON FLAT_TREE [] json/json.simple/manual MANUAL_OPT JSON FLAT_TREE [] json/svenson/databind MANUAL_OPT JSON FLAT_TREE [] xml/xstream+c ZERO_KNOWLEDGE XML FLAT_TREE [] json/javax-tree/glassfish ZERO_KNOWLEDGE JSON FLAT_TREE [] jboss-marshalling-serial ZERO_KNOWLEDGE BINARY FULL_GRAPH [] xml/exi-manual ZERO_KNOWLEDGE XML UNKNOWN [] json/argo/manual-tree MANUAL_OPT JSON FLAT_TREE [] json/jsonij/manual-jpath MANUAL_OPT JSON FLAT_TREE [] json/flexjson/databind ZERO_KNOWLEDGE JSON FULL_GRAPH [] java-built-in ZERO_KNOWLEDGE BINARY FLAT_TREE [] java-built-in-serializer ZERO_KNOWLEDGE BINARY FULL_GRAPH [] stephenerialization ZERO_KNOWLEDGE BINARY FULL_GRAPH [] null json/protobuf CLASSES_KNOWN JSON FLAT_TREE [] json/json-lib/databind ZERO_KNOWLEDGE JSON FLAT_TREE []