`
yonlist
  • 浏览: 85662 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对比测试Java、Hessian、Burlap之序列化性能

阅读更多

Hessian的序列化类型与Java内置的有些类似,都是二进制方式。

再次补充了Burlap的测试,Burlap是XML格式的。

 

我对这三种序列化方式作了一个对比测试:

 

测试数据

·100次循环

//=========================

1、100次Integer序列化的用时和长度

Java Default      0ms     409

Hessian             0ms     152

Burlap              27ms    1.25K

 

2、100次"hello world"序列化的用时和长度

Java Default       7ms      513

Hessian            69ms    1.17K

Burlap               57ms    2.73K

 

3、100次简单对象序列化的用时和长度

Java Default      26ms    1.37K

Hessian               4ms      606

Burlap              422ms   18.6K

 

·10000次循环

//=========================

1、10000次Integer序列化的用时和长度

Java Default      3ms   39.2K

Hessian             1ms   27.2K

Burlap         2917ms    145K

 

2、10000次"hello world"序列化的用时和长度

Java Default    231ms   48.8K

Hessian            87ms     117K

Burlap           5530ms    273K

 

3、10000次简单对象序列化的用时和长度

Java Default    732ms    127K

Hessian           105ms   66.3K

Burlap          41378ms  1874K

 

结论

Java Default 在数据量不大的情况下性能与Hessian差别不大。

Hessian的优势在对象序列化,劣势在字符串序列化。

但大数据量的处理,Hessian则处于绝对优势,除了字符串的长度大一些。

Burlap... 小数据的时候还可以用用。

 

分享到:
评论

相关推荐

    hessian java +c# 数据测试

    在Java端定义的类可以通过Hessian的`Hessian2Output`进行序列化,C#端的类则需要通过HessianNet的解码器来反序列化。 至于"List"和"Map",它们在Hessian中也有特别的处理方式。Hessian可以序列化和反序列化List和...

    Netty之序列化协议

    4. **Hessian和Burlap**:是Apache的Caucho项目提供的二进制RPC协议,它们提供了一种轻量级的序列化方式,适合于内部服务间的通信,尤其是跨语言通信。 在Netty中实现序列化,通常需要自定义`MessageToByteEncoder`...

    闲着没事Hessian开发WebService的总结(一)

    Hessian是一种轻量级的远程调用协议,它允许Java和.NET之间进行二进制序列化的RPC通信,特别适合于低带宽环境或需要高效传输数据的情况。 描述中提到的“NULL”意味着没有具体的描述信息,但我们可以根据标题推测,...

    Java 反序列化漏洞速查表.zip

    (JSON)Red5 IO AMF(AMF)Apache Flex BlazeDS(AMF)火烈鸟 AMF (AMF)花岗岩 DS (AMF)Java 版 WebORB (AMF)SnakeYAML(YAML)jYAML(YAML)YamlBeans(YAML)“安全”反序列化Java 本机序列化(二进制)概述Java ...

    Hessian 接口 Java Python.docx

    在Hessian 2.0的"call"中指定要调用的方法,方法参数通过call传递,并使用Hessian 2.0序列化协议进行序列化。如果方法调用成功,返回值也会使用Hessian 2.0序列化并发送给客户端;如果调用失败,服务器会向客户端...

    Java学习之路-Spring的HttpInvoker学习

     因为Hessian和Burlap都是采用了私有的序列化机制,而RMI使用的是Java本身的序列化机制。如果数据模型非常复杂,那么Hessian/Burlap的序列化模型可能无法胜任了。  Spring开发团队意识到RMI服务和基于HTTP的服务...

    hessian 实例

    远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的优点。试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的...

    RPC通信模型(java)

    Java中有多种RPC框架,如RMI(Remote Method Invocation)、Hessian、 Burlap、gRPC和Dubbo等。这些框架提供了实现RPC通信的基础设施,简化了开发过程。 3. **RMI**: RMI是Java内置的RPC机制,通过Java对象的...

    marshalsec.pdf

    - 基于字段的序列化器包括:Java Serialization、Kryo、Hessian/Burlap、json-io和XStream。 文档中并未详细列出所有漏洞利用细节,但指出了这些库存在安全隐患,能够被攻击者利用来执行任意代码。 5. 漏洞利用...

    一个基于Java的RPC工具.zip

    - **Hessian和Burlap**: 这是两个轻量级的RPC框架,它们提供二进制和XML序列化协议,简化跨语言的RPC调用。 - **gRPC**: Google开源的高性能、通用的RPC框架,基于HTTP/2协议,支持多种语言,包括Java,提供了强大...

    Java远程通讯可选技术及原理.docx

    RMI使用Java ObjectStream作为传输标准格式,通过Java序列化机制处理流的转换。 **XML-RPC** XML-RPC与RMI类似,但使用XML作为数据交换格式,因此支持跨语言通信。在XML-RPC中,请求信息被封装成XML文档,然后转化...

    marshalsec-0.0.3-SNAPSHOT-all.zip

    1. **多协议支持**:`marshalsec`支持多种Java反序列化协议,如RMI(远程方法调用)、JMX(Java管理扩展)、Hessian、Burlap等,这些协议在不同场景下广泛使用,也是漏洞高发区。 2. **预定义payloads**:`...

    Java远程通讯可选技术及原理

    Java远程通讯技术是构建分布式系统的关键,涉及到多种技术如RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等。这些技术在不同的场景下有着各自的优势和适用范围,理解它们的工作原理对于优化系统性能至关重要。 ...

    java-deserialize-recovery:该项目旨在恢复使用java.io.ObjectOutputStream创建的文件

    5. **兼容性和兼容库**:项目可能支持多种版本的Java和不同的序列化库,如Hessian、Burlap等,这些库也常用于反序列化操作。 6. **社区和文档**:项目可能有一个活跃的开发者社区,提供文档和讨论,以便用户交流反...

    simple-parent

    2. ** Burlap**:与Hessian类似,Burlap也是一种RPC协议,但它使用XML进行序列化,因此具有更好的可读性,但可能会牺牲一些性能。 3. **Web Services (SOAP/WSDL)**:这种基于标准的远程调用方式提供了高度的互操作...

    rpc 远程调用

    Java中常见的序列化库有Hessian、Burlap、protobuf、Jackson等。 3. **网络通信框架**:Netty是一个高性能、异步事件驱动的网络应用框架,常用于构建RPC框架。它提供了高效的IO处理,支持多种传输协议,并且具有很...

    Java远程技术.pdf

    - Hessian和Burlap:基于HTTP协议的远程通信技术,用于序列化Java对象。 - EJB(Enterprise JavaBeans):一种用于开发企业级应用的Java组件架构,支持远程通信。 6. 网络协议与Java远程通信的关系: - TCP/UDP...

    JAVA分布式开发

    - Hessian和Burlap是轻量级的RPC(远程过程调用)框架,支持二进制和XML序列化。 - JMS(Java Message Service)通过消息队列实现进程间的异步通信。 - JAX-RPC和Web Services(如SOAP)提供了基于HTTP的远程调用...

    【Java面试资料】-Dubbo面试专题及答案(下)

    12. **性能优化**:了解如何优化Dubbo服务的性能,如调优网络通信参数、减少序列化和反序列化开销、优化服务接口设计等。 13. **故障排查**:掌握如何通过日志、监控数据、服务跟踪等方式定位和解决问题。 通过...

Global site tag (gtag.js) - Google Analytics