Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Outline

序列化和反序列化实现

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.56</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.protostuff/protostuff-core -->
<dependency>
    <groupId>io.protostuff</groupId>
    <artifactId>protostuff-core</artifactId>
    <version>1.6.0</version>
    <scope>test</scope>
</dependency>



<!-- https://mvnrepository.com/artifact/io.protostuff/protostuff-runtime -->
<dependency>
    <groupId>io.protostuff</groupId>
    <artifactId>protostuff-runtime</artifactId>
    <version>1.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.caucho/hessian -->
<dependency>
    <groupId>com.caucho</groupId>
    <artifactId>hessian</artifactId>
    <version>4.0.60</version>
</dependency>

使用事例

  • 定义pojo 如果使用JDK方式,还需要实现Serializable接口
@Data
@Builder
public class User implements Serializable {

    private  String  name;
    private  int age;
}
User user = User.builder().name("用户"+i).age(i).build();
private AbstractSerialize  serialize = new ProtostuffSerializeUtil();
byte[] body = serialize.serialize(msg);
User user1 = serialize.deserialize(body,User.class);

测试

测试类

综合来看,hessian 的效率是比较高的。fastjson效率相对偏低。

序列化对象类java.util.ArrayList  序列化类com.utils.serialization.JdkSerializeUtil  序列化花费时间369 字节长度 =  788948
序列化对象类java.util.ArrayList  序列化类com.utils.serialization.FastjsonSerializeUtil  序列化花费时间417 字节长度 =  788891
序列化对象类java.util.ArrayList  序列化类com.utils.serialization.HessianSerializeUtil  序列化花费时间242 字节长度 =  788897

序列化对象类java.util.HashMap  序列化类com.utils.serialization.JdkSerializeUtil  序列化花费时间284 字节长度 =  1577862
序列化对象类java.util.HashMap  序列化类com.utils.serialization.FastjsonSerializeUtil  序列化花费时间393 字节长度 =  1577781
序列化对象类java.util.HashMap  序列化类com.utils.serialization.HessianSerializeUtil  序列化花费时间184 字节长度 =  1577785

序列化对象类com.utils.pojo.TestPojo  序列化类com.utils.serialization.JdkSerializeUtil  序列化花费时间21 字节长度 =  977
序列化对象类com.utils.pojo.TestPojo  序列化类com.utils.serialization.FastjsonSerializeUtil  序列化花费时间58 字节长度 =  1192
序列化对象类com.utils.pojo.TestPojo  序列化类com.utils.serialization.HessianSerializeUtil  序列化花费时间4 字节长度 =  1319
序列化对象类com.utils.pojo.TestPojo  序列化类com.utils.serialization.ProtostuffSerializeUtil  序列化花费时间67 字节长度 =  825
Morty Proxy This is a proxified and sanitized view of the page, visit original site.