-
Notifications
You must be signed in to change notification settings - Fork 561
Newer Results on Different Hardware
(This is the benchmark for JDK8 on linux, the benchmark for JDK11 is done on macos to keep consist with previous hardware and the results are placed on wiki/Home)
OS:Linux
JVM:Oracle Corporation 1.8.0_331
CPU:null os-arch:null
Cores (incl HT):8
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 92 327 479 805 436 192
fury 85 475 608 1083 257 163
fury-auto-flat 84 498 607 1105 293 198
colfer 70 578 714 1292 241 152
json-array/dsl-json/databind 82 888 986 1874 296 187
kryo-registered-flat 86 1049 913 1962 218 140
protostuff 118 977 1059 2036 242 153
protobuf 435 1369 739 2107 242 152
fst-flat-pre 93 1081 1198 2278 254 168
json-array/fastjson/databind 85 1246 1237 2483 284 171
json/dsl-json/databind 85 994 1494 2487 488 271
kryo-auto-flat 87 1186 1321 2507 273 184
smile-col/jackson/databind 90 1278 1602 2880 255 168
cbor-col/jackson/databind 90 1202 1755 2956 252 165
msgpack/databind 86 1251 1726 2977 236 150
thrift-compact 139 1950 1144 3094 243 152
protobuf/jacksonafterburner/databind 84 1517 1663 3180 242 151
cbor/jackson+afterburner/databind 91 1424 1806 3230 398 251
thrift 127 2259 1057 3315 352 201
smile/jackson+afterburner/databind 85 1598 1813 3411 355 259
json-col/jackson/databind 85 1485 2017 3502 296 187
smile/jackson/databind 91 1725 2059 3785 341 248
flatbuffers 94 2331 1561 3892 424 234
json/fastjson/databind 87 1814 2124 3938 489 271
cbor/jackson/databind 88 1645 2393 4038 398 251
protobuf/jackson/databind 91 1831 2294 4126 242 151
avro-generic 483 2835 1339 4174 224 136
json/jackson+afterburner/databind 87 1860 2412 4272 488 271
avro-fastserde-generic 490 2854 1434 4288 224 136
avro-specific 135 2633 1973 4606 224 136
avro-fastserde-specific 137 2680 1965 4644 224 136
capnproto 88 3235 1527 4761 400 210
json/jackson/databind 87 2044 2877 4921 488 271
json/jackson-jr/databind 86 2237 2753 4990 471 263
json/protostuff-runtime 88 2354 2763 5116 472 252
xml/jackson/databind 106 3783 6593 10375 686 296
json/gson/databind 87 6910 5852 12762 489 268
xml/xstream+c 90 7861 21003 28864 490 253
xml/exi-manual 91 16349 15157 31506 340 331
json/javax-tree/glassfish 1640 14021 19699 33720 488 273
java-built-in 88 7748 31381 39129 892 520
json/protobuf 406 10518 75017 85535 500 262
json/json-lib/databind 84 38818 105345 144163 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 84 889 753 1643 259 165
fury-auto 92 919 769 1688 295 200
protostuff-graph 134 1224 1095 2319 242 153
protostuff-graph-runtime 85 1523 1157 2680 244 154
fst 84 2425 2173 4598 319 208
kryo-registered 85 3540 1490 5030 236 153
kryo-auto 88 3770 1941 5711 291 198
jboss-marshalling-river-ct 85 3624 2607 6230 301 203
hessian 89 5470 7268 12738 504 319
jboss-marshalling-river 92 5057 9811 14868 608 395
jboss-serialization 85 8503 8827 17330 935 587
jboss-marshalling-serial 90 10636 12370 23006 859 503
java-built-in-serializer 86 7711 31935 39646 892 520
stephenerialization 88 8253 33972 42225 1096 522
json/flexjson/databind 85 16463 27113 43576 506 282
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 70 578 714 1292 241 152
protobuf/protostuff 116 918 1140 2058 242 152
protobuf 435 1369 739 2107 242 152
protobuf/protostuff-runtime 83 1256 1056 2312 244 153
msgpack/databind 86 1251 1726 2977 236 150
thrift-compact 139 1950 1144 3094 243 152
thrift 127 2259 1057 3315 352 201
flatbuffers 94 2331 1561 3892 424 234
cbor/jackson/databind 88 1645 2393 4038 398 251
avro-generic 483 2835 1339 4174 224 136
avro-fastserde-generic 490 2854 1434 4288 224 136
avro-specific 135 2633 1973 4606 224 136
avro-fastserde-specific 137 2680 1965 4644 224 136
capnproto 88 3235 1527 4761 400 210
hessian 89 5470 7268 12738 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 82 888 986 1874 296 187
json-array/fastjson/databind 85 1246 1237 2483 284 171
json/dsl-json/databind 85 994 1494 2487 488 271
smile-col/jackson/databind 90 1278 1602 2880 255 168
cbor-col/jackson/databind 90 1202 1755 2956 252 165
json-col/jackson/databind 85 1485 2017 3502 296 187
json/fastjson/databind 87 1814 2124 3938 489 271
json/jackson/databind 87 2044 2877 4921 488 271
json/jackson-jr/databind 86 2237 2753 4990 471 263
json/protostuff-runtime 88 2354 2763 5116 472 252
xml/jackson/databind 106 3783 6593 10375 686 296
json/gson/databind 87 6910 5852 12762 489 268
xml/xstreamc 90 7861 21003 28864 490 253
xml/exi-manual 91 16349 15157 31506 340 331
json/javax-tree/glassfish 1640 14021 19699 33720 488 273
json/flexjson/databind 85 16463 27113 43576 506 282
json/protobuf 406 10518 75017 85535 500 262
json/json-lib/databind 84 38818 105345 144163 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
kryo-manual 85 707 655 1362 213 136
datakernel 103 930 824 1754 228 137
kryo-opt 86 960 947 1907 215 136
protostuff-manual 87 903 1140 2042 242 153
wobly 61 1250 874 2124 254 155
wobly-compact 56 1242 906 2148 228 143
java-manual 88 1611 1016 2627 258 151
cbor/jackson/manual 90 1278 1743 3021 389 245
smile/jackson/manual 91 1466 1567 3033 344 252
msgpack/manual 84 1325 1822 3147 236 150
json/jackson/manual 82 1771 1946 3717 471 262
jboss-marshalling-river-ct-manual 89 1992 1757 3750 292 171
avro-generic-manual 533 2730 1069 3798 224 136
avro-fastserde-generic-manual 621 2777 1024 3801 224 136
avro-specific-manual 132 2595 1539 4134 224 136
json/protostuff-manual 82 2012 2320 4332 452 242
avro-fastserde-specific-manual 141 2617 2005 4622 224 136
xml/aalto-manual 83 2984 3988 6972 656 314
jboss-marshalling-river-manual 88 2850 5902 8751 484 245
json/gson/manual 89 4490 4942 9432 471 262
xml/woodstox-manual 84 3930 5749 9679 656 314
json/json-smart/manual-tree 86 7244 5495 12739 498 274
json/gson/manual-tree 95 6858 7349 14207 488 268
xml/fastinfo-manual 88 7649 6980 14629 380 290
xml/javolution/manual 87 5556 9257 14813 507 273
xml/xstreamc-aalto 86 5021 10645 15666 528 282
xml/xstream+c-fastinfo 84 8465 8802 17267 348 271
bson/mongodb/manual 84 3552 14337 17889 498 286
xml/xstream+c-woodstox 87 6053 12559 18611 528 282
json/org.json/manual-tree 85 9952 11374 21326 488 268
json/json.simple/manual 83 9600 11823 21423 498 274
json/svenson/databind 83 6131 15532 21663 501 271
json/javax-stream/glassfish 96 10681 18651 29332 471 262
json/jsonij/manual-jpath 95 27365 14327 41692 484 264
json/argo/manual-tree 87 89115 18753 107868 488 273
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 85 707 655 1362 213 136
protostuff 118 977 1059 2036 242 153
fst-flat-pre 93 1081 1198 2278 254 168
protostuff-runtime 83 1280 1065 2345 244 154
msgpack/databind 86 1251 1726 2977 236 150
msgpack/manual 84 1325 1822 3147 236 150
fst-flat 99 1524 1801 3325 317 207
fst 84 2425 2173 4598 319 208
create ser deser total size +dfl fury-fastest 92 327 479 805 436 192 fury 85 475 608 1083 257 163 fury-auto-flat 84 498 607 1105 293 198 colfer 70 578 714 1292 241 152 kryo-manual 85 707 655 1362 213 136 fury-registered 84 889 753 1643 259 165 fury-auto 92 919 769 1688 295 200 datakernel 103 930 824 1754 228 137 json-array/dsl-json/databind 82 888 986 1874 296 187 kryo-opt 86 960 947 1907 215 136 kryo-registered-flat 86 1049 913 1962 218 140 protostuff 118 977 1059 2036 242 153 protostuff-manual 87 903 1140 2042 242 153 protobuf/protostuff 116 918 1140 2058 242 152 protobuf 435 1369 739 2107 242 152 wobly 61 1250 874 2124 254 155 wobly-compact 56 1242 906 2148 228 143 fst-flat-pre 93 1081 1198 2278 254 168 protobuf/protostuff-runtime 83 1256 1056 2312 244 153 protostuff-graph 134 1224 1095 2319 242 153 protostuff-runtime 83 1280 1065 2345 244 154 json-array/fastjson/databind 85 1246 1237 2483 284 171 json/dsl-json/databind 85 994 1494 2487 488 271 kryo-auto-flat 87 1186 1321 2507 273 184 java-manual 88 1611 1016 2627 258 151 protostuff-graph-runtime 85 1523 1157 2680 244 154 smile-col/jackson/databind 90 1278 1602 2880 255 168 cbor-col/jackson/databind 90 1202 1755 2956 252 165 msgpack/databind 86 1251 1726 2977 236 150 cbor/jackson/manual 90 1278 1743 3021 389 245 smile/jackson/manual 91 1466 1567 3033 344 252 thrift-compact 139 1950 1144 3094 243 152 msgpack/manual 84 1325 1822 3147 236 150 protobuf/jackson+afterburner/databind 84 1517 1663 3180 242 151 cbor/jackson+afterburner/databind 91 1424 1806 3230 398 251 thrift 127 2259 1057 3315 352 201 fst-flat 99 1524 1801 3325 317 207 smile/jackson+afterburner/databind 85 1598 1813 3411 355 259 json-col/jackson/databind 85 1485 2017 3502 296 187 json/jackson/manual 82 1771 1946 3717 471 262 jboss-marshalling-river-ct-manual 89 1992 1757 3750 292 171 smile/jackson/databind 91 1725 2059 3785 341 248 avro-generic-manual 533 2730 1069 3798 224 136 avro-fastserde-generic-manual 621 2777 1024 3801 224 136 flatbuffers 94 2331 1561 3892 424 234 json/fastjson/databind 87 1814 2124 3938 489 271 cbor/jackson/databind 88 1645 2393 4038 398 251 protobuf/jackson/databind 91 1831 2294 4126 242 151 avro-specific-manual 132 2595 1539 4134 224 136 avro-generic 483 2835 1339 4174 224 136 json/jackson+afterburner/databind 87 1860 2412 4272 488 271 avro-fastserde-generic 490 2854 1434 4288 224 136 json/protostuff-manual 82 2012 2320 4332 452 242 fst 84 2425 2173 4598 319 208 avro-specific 135 2633 1973 4606 224 136 avro-fastserde-specific-manual 141 2617 2005 4622 224 136 avro-fastserde-specific 137 2680 1965 4644 224 136 capnproto 88 3235 1527 4761 400 210 json/jackson/databind 87 2044 2877 4921 488 271 json/jackson-jr/databind 86 2237 2753 4990 471 263 kryo-registered 85 3540 1490 5030 236 153 json/protostuff-runtime 88 2354 2763 5116 472 252 kryo-auto 88 3770 1941 5711 291 198 jboss-marshalling-river-ct 85 3624 2607 6230 301 203 xml/aalto-manual 83 2984 3988 6972 656 314 jboss-marshalling-river-manual 88 2850 5902 8751 484 245 json/gson/manual 89 4490 4942 9432 471 262 xml/woodstox-manual 84 3930 5749 9679 656 314 xml/jackson/databind 106 3783 6593 10375 686 296 hessian 89 5470 7268 12738 504 319 json/json-smart/manual-tree 86 7244 5495 12739 498 274 json/gson/databind 87 6910 5852 12762 489 268 json/gson/manual-tree 95 6858 7349 14207 488 268 xml/fastinfo-manual 88 7649 6980 14629 380 290 xml/javolution/manual 87 5556 9257 14813 507 273 jboss-marshalling-river 92 5057 9811 14868 608 395 xml/xstream+c-aalto 86 5021 10645 15666 528 282 xml/xstream+c-fastinfo 84 8465 8802 17267 348 271 jboss-serialization 85 8503 8827 17330 935 587 bson/mongodb/manual 84 3552 14337 17889 498 286 xml/xstream+c-woodstox 87 6053 12559 18611 528 282 json/org.json/manual-tree 85 9952 11374 21326 488 268 json/json.simple/manual 83 9600 11823 21423 498 274 json/svenson/databind 83 6131 15532 21663 501 271 jboss-marshalling-serial 90 10636 12370 23006 859 503 xml/xstream+c 90 7861 21003 28864 490 253 json/javax-stream/glassfish 96 10681 18651 29332 471 262 xml/exi-manual 91 16349 15157 31506 340 331 json/javax-tree/glassfish 1640 14021 19699 33720 488 273 java-built-in 88 7748 31381 39129 892 520 java-built-in-serializer 86 7711 31935 39646 892 520 json/jsonij/manual-jpath 95 27365 14327 41692 484 264 stephenerialization 88 8253 33972 42225 1096 522 json/flexjson/databind 85 16463 27113 43576 506 282 json/protobuf 406 10518 75017 85535 500 262 json/argo/manual-tree 87 89115 18753 107868 488 273 json/json-lib/databind 84 38818 105345 144163 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 kryo-manual MANUAL_OPT BINARY FLAT_TREE [] complete manual optimization fury-registered CLASSES_KNOWN BINARY FULL_GRAPH [] class registration, references (typical usage) fury-auto ZERO_KNOWLEDGE BINARY FULL_GRAPH [] no class registration, references datakernel MANUAL_OPT BINARY FLAT_TREE [] manually optimized json-array/dsl-json/databind CLASSES_KNOWN JSON FLAT_TREE [] JSON array format - all properties without names. kryo-opt MANUAL_OPT BINARY FLAT_TREE [] manual optimization kryo-registered-flat CLASSES_KNOWN BINARY FLAT_TREE [] class registration, no references (typical usage) protostuff CLASSES_KNOWN BINARY FLAT_TREE [] generated code protostuff-manual MANUAL_OPT BINARY FLAT_TREE [] manual protobuf/protostuff CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] protobuf + generated code protobuf CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] wobly MANUAL_OPT BINARY FLAT_TREE [] wobly-compact MANUAL_OPT BINARY FLAT_TREE [] 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-graph CLASSES_KNOWN BINARY FULL_GRAPH [] graph + generated code protostuff-runtime ZERO_KNOWLEDGE BINARY FLAT_TREE [] reflection json-array/fastjson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] json/dsl-json/databind CLASSES_KNOWN JSON FLAT_TREE [] Serializes all properties with exact names. kryo-auto-flat ZERO_KNOWLEDGE BINARY FLAT_TREE [] no class registration, no references java-manual MANUAL_OPT BINARY FLAT_TREE [] protostuff-graph-runtime ZERO_KNOWLEDGE BINARY FULL_GRAPH [] graph + reflection smile-col/jackson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] uses positional (column) layout to eliminate use of names cbor-col/jackson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] uses positional (column) layout 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 cbor/jackson/manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [] smile/jackson/manual MANUAL_OPT BINARY FLAT_TREE [] thrift-compact CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] msgpack/manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [] uses positional (column) layout (instead of Maps std impl uses) to eliminate use of names protobuf/jackson+afterburner/databind CLASSES_KNOWN BINARY FLAT_TREE [] cbor/jackson+afterburner/databind ZERO_KNOWLEDGE BINARY FLAT_TREE [] uses bytecode generation to reduce overhead thrift CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] fst-flat ZERO_KNOWLEDGE BINARY FLAT_TREE [] fst default, but unshared mode smile/jackson+afterburner/databind ZERO_KNOWLEDGE BINARY FLAT_TREE [] uses bytecode generation to reduce overhead json-col/jackson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] uses positional (column) layout to eliminate use of names json/jackson/manual MANUAL_OPT JSON FLAT_TREE [] jboss-marshalling-river-ct-manual MANUAL_OPT BINARY FULL_GRAPH [] full graph preregistered classes, manual optimization smile/jackson/databind ZERO_KNOWLEDGE BINARY FLAT_TREE [] avro-generic-manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] avro-fastserde-generic-manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] flatbuffers CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] json/fastjson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] cbor/jackson/databind ZERO_KNOWLEDGE BIN_CROSSLANG FLAT_TREE [] protobuf/jackson/databind CLASSES_KNOWN BINARY FLAT_TREE [] avro-specific-manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] avro-generic CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] json/jackson+afterburner/databind ZERO_KNOWLEDGE BINARY FLAT_TREE [] uses bytecode generation to reduce overhead avro-fastserde-generic CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] json/protostuff-manual MANUAL_OPT JSON FLAT_TREE [] json + manual fst ZERO_KNOWLEDGE BINARY FULL_GRAPH [] default: JDK serialization drop-in-replacement mode avro-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] avro-fastserde-specific CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [VERSIONING_BACKWARD_COMPATIBLE, VERSIONING_FORWARD_COMPATIBLE, VERSIONING_MISMATCH_DETECTION] capnproto CLASSES_KNOWN BIN_CROSSLANG FLAT_TREE [] json/jackson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] json/jackson-jr/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] kryo-registered CLASSES_KNOWN BINARY FULL_GRAPH [] class registration, references (typical usage) json/protostuff-runtime ZERO_KNOWLEDGE JSON FLAT_TREE [] json + reflection kryo-auto ZERO_KNOWLEDGE BINARY FULL_GRAPH [] no class registration, references jboss-marshalling-river-ct CLASSES_KNOWN BINARY FULL_GRAPH [] full graph with preregistered classes xml/aalto-manual MANUAL_OPT XML UNKNOWN [] 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 [] hessian ZERO_KNOWLEDGE BIN_CROSSLANG FULL_GRAPH [] json/json-smart/manual-tree MANUAL_OPT JSON FLAT_TREE [] json/gson/databind ZERO_KNOWLEDGE JSON FLAT_TREE [] json/gson/manual-tree MANUAL_OPT JSON FLAT_TREE [] xml/fastinfo-manual MANUAL_OPT XML UNKNOWN [] xml/javolution/manual MANUAL_OPT XML FLAT_TREE [] jboss-marshalling-river ZERO_KNOWLEDGE BINARY FULL_GRAPH [] full graph zero knowledge xml/xstream+c-aalto MANUAL_OPT XML FLAT_TREE [] xml/xstream+c-fastinfo MANUAL_OPT XML FLAT_TREE [] jboss-serialization ZERO_KNOWLEDGE BINARY FULL_GRAPH [] bson/mongodb/manual MANUAL_OPT BIN_CROSSLANG FLAT_TREE [] xml/xstream+c-woodstox MANUAL_OPT XML FLAT_TREE [] json/org.json/manual-tree MANUAL_OPT JSON FLAT_TREE [] json/json.simple/manual MANUAL_OPT JSON FLAT_TREE [] json/svenson/databind MANUAL_OPT JSON FLAT_TREE [] jboss-marshalling-serial ZERO_KNOWLEDGE BINARY FULL_GRAPH [] xml/xstream+c ZERO_KNOWLEDGE XML FLAT_TREE [] json/javax-stream/glassfish MANUAL_OPT JSON FLAT_TREE [] xml/exi-manual ZERO_KNOWLEDGE XML UNKNOWN [] json/javax-tree/glassfish ZERO_KNOWLEDGE JSON FLAT_TREE [] java-built-in ZERO_KNOWLEDGE BINARY FLAT_TREE [] java-built-in-serializer ZERO_KNOWLEDGE BINARY FULL_GRAPH [] json/jsonij/manual-jpath MANUAL_OPT JSON FLAT_TREE [] stephenerialization ZERO_KNOWLEDGE BINARY FULL_GRAPH [] null json/flexjson/databind ZERO_KNOWLEDGE JSON FULL_GRAPH [] json/protobuf CLASSES_KNOWN JSON FLAT_TREE [] json/argo/manual-tree MANUAL_OPT JSON FLAT_TREE [] json/json-lib/databind ZERO_KNOWLEDGE JSON FLAT_TREE []