Skip to content
RuedigerMoeller edited this page Mar 7, 2014 · 69 revisions

For discussions please use the java serialization benchmarking google group.

Disclamer

This test focusses on en/decoding of a cyclefree data structure. Some serializers support cycle detection/object sharing, some offer both modes, some include full metadata, some don’t, some are cross platform, some are language specific, some are text based, some are binary. (See ToolBehavior)
Other test data will yield in different results. However the results give a raw estimation of library performance.


java version “1.7.0_51”
Java™ SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot™ 64-Bit Server VM (build 24.51-b03, mixed mode)

SIMPLE/GENERIC:
Serializes any POJO tree without class specific optimization. Serialized classes are known in advance. No cycle detection/shared object detection is done.

Checking correctness…
[done]
Pre-warmup… java-built-in hessian kryo fast-serialization jboss-serialization jboss-marshalling-river protostuff msgpack-databind json/jackson/databind json/jackson/db-afterburner json/protostuff-runtime json/google-gson/databind json/svenson-databind json/flexjson/databind json/fastjson/databind smile/jackson/databind smile/jackson/db-afterburner bson/jackson/databind xml/xstream+c xml/jackson/databind-aalto
[done]

                             create     ser   deser   total   size  +dfl
java-built-in                          63    5838   30208   36046    889   514
hessian                                63    3881    6176   10057    501   313
kryo                                   63     655     838    1493    212   132
fast-serialization                     63     704     864    1568    252   166
jboss-serialization                    63    6466    6643   13110    932   582
jboss-marshalling-river                63    4656   23892   28548    694   400
protostuff                             82     495     732    1227    239   150
msgpack-databind                       62     830    1370    2200    233   146
json/jackson/databind                  62    1895    2600    4496    485   261
json/jackson/db-afterburner            63    1513    1988    3501    485   261
json/protostuff-runtime                63    1532    2138    3670    469   243
json/google-gson/databind              63    5633    4844   10477    486   259
json/svenson-databind                  63    5270   10358   15628    495   272
json/flexjson/databind                 63   19445   25394   44838    503   273
json/fastjson/databind                 63    1316    1149    2465    486   262
smile/jackson/databind                 63    1768    1891    3659    338   241
smile/jackson/db-afterburner           64    1448    1492    2940    352   252
bson/jackson/databind                  64    5376    6812   12188    506   286
xml/xstream+c                          64    6476   13505   19981    487   244
xml/jackson/databind-aalto             63    3001    5516    8517    683   286






DEFAULT:
Serializes any object trees, cycle detection enabled. Nothing is known in advance about the classes to serialize. Only serializers supporting full object graph restauration are included.

Checking correctness…
[done]
Pre-warmup… java-built-in-serializer hessian kryo-serializer fast-serialization-shared jboss-serialization
[done]

                             create     ser   deser   total   size  +dfl
java-built-in-serializer               64    5723   29259   34982    889   514
hessian                                64    3611    6169    9780    501   313
kryo-serializer                        64    1711    1499    3210    311   198
fast-serialization-shared              64    1621    1592    3212    341   212
jboss-serialization                    64    6442    6339   12781    932   582






SIMPLE/SPECIFC: Serializes only specific classes using code generation or other special knowledge about the class.

Checking correctness…
[done]
Pre-warmup… kryo-opt wobly wobly-compact protobuf protostuff protobuf/protostuff thrift thrift-compact avro json/json-lib-databind json/jsonij-jpath
[done]

                             create     ser   deser   total   size  +dfl
kryo-opt                               64     658     864    1522    209   129
wobly                                  43     886     536    1422    251   151
wobly-compact                          43     903     569    1471    225   139
protobuf                              130    1225     701    1926    239   149
protostuff                             82     488     678    1166    239   150
protobuf/protostuff                    83     598     692    1290    239   149
thrift                                126    1796     795    2591    349   197
thrift-compact                        126    1555     963    2518    240   148
avro                                   89    1616    1415    3031    221   133
json/json-lib-databind                 63   26330  103150  129479    485   263
json/jsonij-jpath                      63   38015   12325   50339    478   259






MANUAL:
Serializes only specific classes using hand written serialization code.

Checking correctness…
[done]
Pre-warmup… java-manual kryo-manual protostuff-manual avro-generic json/jackson/manual json/protostuff-manual json/google-gson/manual json/json.simple/manual json/json-smart/manual/tree json/org.json/manual/tree json/argo-manual/tree smile/jackson/manual bson/mongodb xml/woodstox-manual xml/aalto-manual xml/xstream+c-woodstox xml/xstream+c-aalto xml/xstream+c-fastinfo xml/javolution xml/fastinfo-manual
[done]

                             create     ser   deser   total   size  +dfl
java-manual                            63     847     632    1480    255   147
kryo-manual                            63     555     616    1171    211   131
protostuff-manual                      63     465     711    1176    239   150
avro-generic                          379    1822    1125    2947    221   133
json/jackson/manual                    63    1097    1539    2636    468   253
json/protostuff-manual                 63    1345    1816    3161    449   233
json/google-gson/manual                63    3696    3756    7452    468   253
Clone this wiki locally