您的位置:首页 > 编程语言 > Java开发

Java序列化工具大全及性能比较

2015-03-18 14:09 459 查看
来源:https://github.com/eishay/jvm-serializers/wiki

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 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 arbitrary object graphs, cycle detection enabled. Nothing is known in advance about the classes to serialize. Only serializers supporting full object graph serialization 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
json/json.simple/manual                63    6184    8059   14243    495   269
json/json-smart/manual/tree            63    5314    4088    9402    495   269
json/org.json/manual/tree              63    6989    8413   15403    485   259
json/argo-manual/tree                  63   66575   14578   81153    485   263
smile/jackson/manual                   63     939    1092    2031    341   244
bson/mongodb                           64    3422    7762   11184    495   278
xml/woodstox-manual                    63    3159    4578    7737    653   304
xml/aalto-manual                       63    2077    3093    5170    653   304
xml/xstream+c-woodstox                 63    5638   10506   16144    525   273
xml/xstream+c-aalto                    63    4893    8912   13805    525   273
xml/xstream+c-fastinfo                 63    8451    7971   16422    345   264
xml/javolution                         64    5544    8538   14082    504   263
xml/fastinfo-manual                    64    6959    5420   12379    377   284












内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: