测试工具
两个测试工具,支持sofa-hessian
- java-json-benchmark
- 需要在不同分枝中,分枝如下:
- master:原始的json
- hessian:hessian
- sofa-hessian:sofa-hessian
- 上面的hessian和sofa-hessian可以分别测试下是否配置SerializerFactory
- 运行方式:run deser --apis databind --libs gson,fastjson,jackson,sofa_hessian,hessian
- jvm-serializers
- make/make clean
- sh run-bench.sh json/fastjson/databind,sofa-hessian,json/jackson/databind,hessian,json/gson/databind
- sh mk-stats.sh
- 最终的数据在results目录中
- 详见README
java-json-benchmark测试结果
Benchmark Mode Cnt Score Error Units
Serialization.sofa_hessian thrpt 20 631137.200 ± 66541.102 ops/s
Serialization.sofa_hessian thrpt 20 717326.984 ± 72366.123 ops/s (set factory)
Serialization.hessian thrpt 20 583532.692 ± 40079.737 ops/s
Serialization.hessian thrpt 20 612836.747 ± 21738.513 ops/s (set factory)
Serialization.gson thrpt 20 354742.866 ± 82372.090 ops/s
Serialization.fastjson thrpt 20 830583.700 ± 13781.901 ops/s
Serialization.jackson thrpt 20 905704.118 ± 138870.721 ops/s
Serialization.jackson_afterburner thrpt 20 1134658.986 ± 18986.503 ops/s
Benchmark Mode Cnt Score Error Units
Deserialization.sofa_hessian thrpt 20 550883.281 ± 49069.478 ops/s (set factory)
Deserialization.sofa_hessian thrpt 20 556774.703 ± 16264.901 ops/s
Deserialization.hessian thrpt 20 500251.967 ± 26627.266 ops/s (set factory)
Deserialization.hessian thrpt 20 566192.222 ± 10740.400 ops/s
Deserialization.fastjson thrpt 20 408527.178 ± 84369.730 ops/s
Deserialization.gson thrpt 20 532821.098 ± 13968.660 ops/s
Deserialization.jackson thrpt 20 793011.238 ± 13809.524 ops/s
Deserialization.jackson_afterburner thrpt 20 891028.981 ± 22881.386 ops/s
jvm-serializers测试结果
下面ser, deser的单位是ns。
create ser deser total size +dfl
json/fastjson/databind 53 1288 1349 2637 489 271
json/jackson/databind 61 1376 2250 3626 488 271
sofa-hessian 56 3678 3490 7168 503 319
sofa-hessian-no-factory 54 3688 3653 7342 503 319
hessian 55 3420 5308 8727 504 319
json/gson/databind 55 5538 4000 9538 489 268
数据大小,差不多。
总结论
从好到差: jackson、fastjson、sofa-hessian、hessian、gson