- 浏览: 7860009 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
kryo是个高效的Java序列化库,kryonet是一个基于kryo的RPC库,使用TCP和UDP通讯,目前不支持http协议。
优点:
速度快!见https://github.com/eishay/jvm-serializers/wiki/Staging-Results
支持互相引用,比如类A引用类B,类B引用类A,可以正确地反序列化。
支持多个引用同一个对象,比如多个类引用了同一个对象O,只会保存一份O的数据。
支持一些有用的注解,如@Tag,@Optional。
支持忽略指定的字段。
支持null
代码入侵少
代码比较简法(比起msgpack,少得多)
缺点:
bug多 2.12,2.14都有bug
文档比较少,有些使用方法要看代码才能理解,最新版2.14有bug,不能正确反序列化map类型。
不是跨语言的解决方案
貌似每一个类都要注册下,不然只能用writeClassAndObject和readClassAndObject函数。
类要有一个空的构造函数,不然不能序列化。
-----------------------------------------------------------------------------
简单例子,见:
http://howwish2011.iteye.com/blog/1568164
摘录下
static private void bean3() {
Kryo kryo = new Kryo();
// kryo.setReferences(true);
// kryo.setRegistrationRequired(true);
// kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
//注册类
Registration registration = kryo.register(Student.class);
long time = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
//序列化
Output output = null;
// ByteArrayOutputStream outStream = new ByteArrayOutputStream();
//output = new Output( outStream , 4096);
output = new Output(1, 4096);
Student student = new Student("zhangsan", "man", 23);
kryo.writeObject(output, student);
byte[] bb = output.toBytes();
// System.out.println(bb.length);
output.flush();
//反序列化
Input input = null;
// input = new Input(new
// ByteArrayInputStream(outStream.toByteArray()),4096);
input = new Input(bb);
Student s = (Student) kryo.readObject(input, registration.getType());
System.out.println(s.getName()+","+s.getSex());
input.close();
}
time = System.currentTimeMillis() - time;
System.out.println("time:" + time);
}
序列化的速度比java更快,更是在缓存区占用更少。
bean类:
package com.test;
import java.io.Serializable;
public class Student implements Serializable{
private String name;
private String sex;
private int age;
public Student() {
}
public Student(String name, String sex, int age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
public int getAge() {
return age;
}
}
更多不错的文章介绍:
一个多个序列化框架的对比:http://x-rip.iteye.com/blog/1555293
两篇原理介绍文:
http://x-rip.iteye.com/blog/1555344
http://blog.csdn.net/hengyunabc/article/details/7764509
优点:
速度快!见https://github.com/eishay/jvm-serializers/wiki/Staging-Results
支持互相引用,比如类A引用类B,类B引用类A,可以正确地反序列化。
支持多个引用同一个对象,比如多个类引用了同一个对象O,只会保存一份O的数据。
支持一些有用的注解,如@Tag,@Optional。
支持忽略指定的字段。
支持null
代码入侵少
代码比较简法(比起msgpack,少得多)
缺点:
bug多 2.12,2.14都有bug
文档比较少,有些使用方法要看代码才能理解,最新版2.14有bug,不能正确反序列化map类型。
不是跨语言的解决方案
貌似每一个类都要注册下,不然只能用writeClassAndObject和readClassAndObject函数。
类要有一个空的构造函数,不然不能序列化。
-----------------------------------------------------------------------------
简单例子,见:
http://howwish2011.iteye.com/blog/1568164
摘录下
static private void bean3() {
Kryo kryo = new Kryo();
// kryo.setReferences(true);
// kryo.setRegistrationRequired(true);
// kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
//注册类
Registration registration = kryo.register(Student.class);
long time = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
//序列化
Output output = null;
// ByteArrayOutputStream outStream = new ByteArrayOutputStream();
//output = new Output( outStream , 4096);
output = new Output(1, 4096);
Student student = new Student("zhangsan", "man", 23);
kryo.writeObject(output, student);
byte[] bb = output.toBytes();
// System.out.println(bb.length);
output.flush();
//反序列化
Input input = null;
// input = new Input(new
// ByteArrayInputStream(outStream.toByteArray()),4096);
input = new Input(bb);
Student s = (Student) kryo.readObject(input, registration.getType());
System.out.println(s.getName()+","+s.getSex());
input.close();
}
time = System.currentTimeMillis() - time;
System.out.println("time:" + time);
}
序列化的速度比java更快,更是在缓存区占用更少。
bean类:
package com.test;
import java.io.Serializable;
public class Student implements Serializable{
private String name;
private String sex;
private int age;
public Student() {
}
public Student(String name, String sex, int age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
public int getAge() {
return age;
}
}
更多不错的文章介绍:
一个多个序列化框架的对比:http://x-rip.iteye.com/blog/1555293
两篇原理介绍文:
http://x-rip.iteye.com/blog/1555344
http://blog.csdn.net/hengyunabc/article/details/7764509
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1491方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 1970前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3418info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2190import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 451https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 635public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 560https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 627https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 401https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 4661 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3045微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 561https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1783什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 915本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1269原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 811public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 624在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 886-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 715一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1858介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
Kryo 是一个快速高效的Java对象图形序列号框架,主要特点是性能、高效和易用。该项目用来序列化对象到文件、数据库或者网络。
tomcat kryo序列化,msm-memcached-session-manager-tc7-1.8.2
Kryo 是一个快速高效的Java对象图形序列化框架,主要特点是性能、高效和易用。该项目用来序列化对象到文件、数据库或者网络。示例代码:Kryo kryo = new Kryo(); // ... Output output = new Output(new...
kryo中间件实例,内容:使用kryo使java对象object序列化成字符串,并使之反序列化为对象。 一个完整的工程,可使用eclipse导入,可运行DemoMain查看结果,有注释 资源包括依赖的kryo-2.24.0.jar、minlog-1.2.jar、...
主要介绍了java原生序列化和Kryo序列化性能实例对比分析,涉及Java和kryo序列化和反序列化相关实例,小编觉得很不错,这里分享给大家,希望给大家一个参考。
akka-kryo-serialization, 基于Kryo的Akka序列化 akka-kryo-serialization-- Scala 和Akka基于kryo的序列化程序这个库为 Scala 和Akka提供定制的基于kryo的序列化程序。 它可以用于更高效的akka远程处理。它还可以...
主要介绍了Kryo序列化及反序列化用法示例,小编觉得挺不错的,这里分享给大家,需要的朋友可以参考下。
kryo用于安卓程序、java端序序列化网络传输所需的jar包集合,有需要的请下载~
用kryo序列化对象,然后集成netty通过socket进行网络传输!通过自定义长度规则解决黏包、拆包问题!数据包格式是报文头+报文体!前4个字节是报文头,保存数据长度;后面是报文体,保存数据!
KryoCocoa 是 Kryo 高性能 Java 序列化框架的 Objective-C 移植版本,兼容 Java 版本的序列化格式。示例代码:Kryo *kryo = [Kryo new]; // ... NSOutputStream *outputStream = [NSOutputStream ...
kryo 高性能java对象序列化
寒意 扩展,包括序列化程序和一组类,以简化 Kryo 在 Hadoop、Storm、Akka 等系统中的配置。兼容性版本之间不保证序列化兼容性,因此,我们不建议将其用于长期存储。 序列化高度依赖于 scala 版本兼容性和底层 Kryo ...
kryo4.0.0序列化反序列化demo
nginx+tomcat7+session共享 kryo序列化所需要包 1.将上面所提到的包全部拷贝到tomcat的lib下(三台tomcat都需要) 2.修改每台tomcat的conf目录下得context.xml文件或者server.xml文件,在其中加入如下任意一段代码...
Kryo - 针对Java的快速和高效对象图序列化框架
<artifactId>kryo-parent <groupId>com.esotericsoftware</groupId> <version>4.0.0 <relativePath>pom.xml </parent>
对几个序列化器的简单对比代码。主要是jdk自带序列化器,kryo,fastjson