`
1028826685
  • 浏览: 940582 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

高性能序列化、反序列化protostuff 使用

    博客分类:
  • J2EE
 
阅读更多

1、引用jar包:

pom.xml:

<!-- protostuff -->

        <dependency>

            <groupId>com.dyuproject.protostuff</groupId>

            <artifactId>protostuff-core</artifactId>

            <version>1.0.7</version>

            <optional>true</optional>

            <scope>provided</scope>

        </dependency>

        <dependency>

            <groupId>com.dyuproject.protostuff</groupId>

            <artifactId>protostuff-runtime</artifactId>

            <version>1.0.7</version>

            <optional>true</optional>

            <scope>provided</scope>

 

        </dependency>

 

序列化例子:

 

public List<byte[]> serializeProtoStuffProductsList(List<Products> pList) {

        if(pList == null  ||  pList.size() <= 0) {

            return null;

        }

        long start = System.currentTimeMillis() ;

        List<byte[]> bytes = new ArrayList<byte[]>();

        Schema<Products> schema = RuntimeSchema.getSchema(Products.class);

        LinkedBuffer buffer = LinkedBuffer.allocate(4096);

        byte[] protostuff = null;

        for(Products p : pList) {

            try {

                protostuff = ProtostuffIOUtil.toByteArray(p, schema, buffer);

                bytes.add(protostuff);

            } finally {

                buffer.clear();

            }

        }

        long end = System.currentTimeMillis() ;

        this.userTime = end - start;

        return bytes;

 

    }

 

反序列化例子:

public List<Products> deserializeProtoStuffDataListToProductsList(

            List<byte[]> bytesList) {

        if(bytesList == null || bytesList.size() <= 0) {

            return null;

        }

        long start = System.currentTimeMillis() ;

        Schema<Products> schema = RuntimeSchema.getSchema(Products.class);

        List<Products> list = new ArrayList<Products>();

        for(byte[] bs : bytesList) {

            Products product = new Products();

            ProtostuffIOUtil.mergeFrom(bs, product, schema);

            list.add(product);

        }

        long end = System.currentTimeMillis() ;

        this.userTime = end - start;

        return list;

 

    }

 

分享到:
评论

相关推荐

    protostuff序列化包

    3. **速度与效率**: Protostuff设计的目标之一就是高性能,其序列化和反序列化速度较快,内存占用低,适合大数据处理和实时系统。 4. **流式处理**: Protostuff支持流式序列化,允许你逐字段地处理对象,这对于...

    protostuff序列化实例

    Protostuff是一个轻量级、高性能的序列化框架,它允许开发者将对象转换为字节流,以便存储或在网络上传输。在Java开发中,序列化是一个常见的需求,特别是在网络通信、持久化存储或者跨进程通信等场景下。Protostuff...

    protostuff fastjson gson 高性能序列化jar包

    这三个jar包——`fastjson-1.2.35.jar`、`gson-2.8.1.jar`和`protostuff`,分别包含了对应库的实现,可以在Java项目中引入这些库来实现高效的序列化和反序列化功能。记得在使用前,先根据项目的需求和兼容性评估哪个...

    protostuff序列化工具

    Protostuff是一个轻量级、高效的Java序列化库,它能够将对象序列化为字节流,也可以将字节流反序列化回对象。在Java开发中,序列化是常见的...如果你正在寻找一种轻量级、高性能的序列化解决方案,Protostuff值得考虑。

    protostuff是一个支持各种格式的一个序列化Java类库

    - **高效性**:Protostuff在序列化和反序列化过程中表现出高性能,因为它采用了流式处理和直接字节缓冲区操作,避免了不必要的内存分配和拷贝。 - **灵活性**:支持多种数据格式,适应不同场景的需求,例如JSON...

    Protostuff for java and c#

    4. 反序列化数据:接收到字节数组或流后,使用反序列化方法恢复成对象实例。 在压缩包中的"Protostuff"文件可能包含以下内容: - 项目的源代码:展示了如何在Java和C#中使用Protostuff进行序列化和反序列化。 - ...

    protostuff-所依赖所有jar包.

    Protostuff是一个轻量级、高性能的序列化框架,它用于序列化和反序列化Java对象到各种格式,如二进制、XML、JSON等。这个压缩包包含了Protostuff运行所需的所有依赖JAR文件,使得开发者能够在项目中便捷地集成和使用...

    protostuff 1.4源码

    Protostuff 是一个轻量级、高性能的数据序列化库,用于 Java 开发者。它能够将 Java 对象序列化为二进制格式,以便在网络间高效传输或者持久化存储。 **描述解析:** 描述提到 Protostuff 可以提升数据传输效率,...

    34_dubbo都支持哪些通信协议以及序列化协议?.zip

    3. **Fastjson**:阿里巴巴开源的JSON库,它也可以用于序列化和反序列化Java对象,性能较好,且支持复杂的Java类型。 4. **protostuff**:基于Protocol Buffers的序列化库,它允许序列化到各种格式,包括二进制和...

    JedisSerialization:实现利用Jedis向Redis中写入和得到Java对象的几种序列化工具:JDK、XML、JSON、Protostuff

    Protostuff是一个高性能、轻量级的序列化框架,支持多种格式(包括二进制和JSON)。它的优势在于速度快、内存消耗低,同时提供了易于使用的API。通过Protostuff,可以定义一个数据模型并将其序列化为字节数组,然后...

    基于Protostuff实现的Netty编解码器.docx

    总结来说,基于Protostuff的Netty编解码器是通过结合Protostuff的序列化和反序列化能力以及Netty的编解码器框架来实现的。它允许我们将复杂的Java对象安全地转换为网络友好的字节流,并在接收端恢复原状。这种机制...

    基于Netty的高性能RPC框架 .zip

    NettyRPC是一个基于Netty构建的高性能Java RPC服务器,支持多种消息序列化方式,如Kryo、Hessian和Protostuff。该项目通过Spring容器管理服务定义和实现,采用主从Reactor线程模型提升服务器并行吞吐性能。 主要...

    在Android 开发中使用Protobuf的实践和经验分享

    - **使用序列化和反序列化**:在代码中通过GeneratedMessage的子类进行数据的序列化和反序列化操作。 3. **优点** - **高效**:Protobuf的序列化速度和序列化后的数据大小通常优于XML和JSON。 - **跨平台**:...

    netty-rpc-master.zip

    Protostuff是一个序列化库,可以将Java对象转换为字节流,或者将字节流反序列化回Java对象。在RPC框架中,序列化和反序列化是必不可少的步骤,因为网络传输的数据必须转换成二进制格式。Protostuff支持多种协议,如...

    spring data redis 封装使用

    在本文中,我们将深入探讨如何在Spring Boot应用中封装并使用Spring Data Redis,以及如何利用protostuff库进行序列化和反序列化。Spring Data Redis是Spring Framework的一个模块,它提供了一个高级抽象层来简化与...

    基于java开发的NIO+多线程实现聊天室+源码+项目解析(毕业设计&课程设计&项目开发)

    ProtoStuff 高性能序列化 HttpClient连接池 Spring依赖注入 lombok简化POJO开发 原子变量 内置锁 CompletionService log4j+slf4j日志 实现的功能 登录注销 单聊 群聊 客户端提交任务,下载图片并显示 上线下线公告 ...

    java多线程程序设计:Java NIO+多线程实现聊天室

    ProtoStuff 高性能序列化 HttpClient连接池 Spring依赖注入 lombok简化POJO开发 原子变量 内置锁 CompletionService log4j+slf4j日志 实现的功能 登录注销 单聊 群聊 客户端提交任务,下载图片并显示 上线下线公告 ...

    EasyRpc:EasyRpc是一个基于Netty,ZooKeeper和ProtoStuff的简单,高性能,易于使用的RPC框架。

    基于ProtoStuff的对象序列化;完整的单元测试和JMH性能压测;基于ZooKeeper实现的服务注册和发现;仿Dubbo数据包结构,优化协议头仅20字节;支持4种负载均衡策略:随机,交替,哈希,最佳响应; 2总体设计 2.1架构图...

    Java NIO+多线程实现聊天室

    ProtoStuff 高性能序列化 HttpClient连接池 Spring依赖注入 lombok简化POJO开发 原子指标 内置锁 竣工服务 log4j+slf4j日志 实现的功能 登录注销 单聊 群聊 客户端提交任务,下载图片并显示 上线下线公告 在线用户...

    "优雅的SSM框架"进行完善(页面分离+nginx负载均衡+tomcat集群)

    Redis缓存(ProtoStuff序列化) Redis Sentinel主从高可用方案 Redis Cluster集群高可用方案 Druid(数据源配置 sql防注入 sql性能监控) 前后端分离(Html替代Jsp) Nginx静态加载、负载均衡 基于keepalived的nginx...

Global site tag (gtag.js) - Google Analytics