因为在工作中有大量场景使用hessian来提供服务,因此对hessian的序列化机制和性能进行了一番研究,google了大量资料。
序列化方面主要参考了http://blog.csdn.net/zhtang0526/article/details/4788879和http://www.iteye.com/topic/245238,概况起来说就是 AbstractSerializer 有 17 种子类实现, hessian 根据不同的 java 对象类型来实现了不同的序列化工具类,其中默认的是 JavaSerializer 。而 JavaSerializer 的 writeObject 方法的实现,遍历 java 对象的数据成员,根据数据成员的类型来获得各自的 FieldSerializer ,一共有 6 种默认的 FieldSerializer 。
performance benchmark主要参考了https://github.com/eishay/jvm-serializers/wiki和http://blog.nominet.org.uk/tech/2007/03/13/middleware-remoting-protocol-migration/所做的测试。结论如下:hessian在中小数据量下有比较不错的表现,基本估算为单次(几十毫秒)在100个复杂对象上下,大小合计100k左右的配比,