package com.test; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.List; import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryo.io.Input; import com.esotericsoftware.kryo.io.Output; import com.test.hessian.MyTO; public class KryoTest { private final static Kryo kryo = new Kryo(); static { // conf.setCrossPlatform(false); } public static void main(String[] args) throws Exception { long start=System.currentTimeMillis(); MyTO to=new MyTO(); to.setId("111"); List<String> list=new ArrayList<String>(); list.add("111"); list.add("222"); to.setList(list); byte[] data=null; for(int i=0; i < 1000; i++) { data=write(to); } long end=System.currentTimeMillis(); System.out.println("write:" + (end - start)); System.out.println("size:" + data.length); start=System.currentTimeMillis(); for(int i=0; i < 1000; i++) { read(data); } end=System.currentTimeMillis(); System.out.println("read:" + (end - start)); Simple simple=new Simple(); simple.setAge(10); simple.setName("test"); simple.setSex(1); SimpleWrapper wrapper=new SimpleWrapper(); wrapper.setCacheObject(simple); wrapper.setLastLoadTime(System.currentTimeMillis()); data=write(wrapper); SimpleWrapper t=(SimpleWrapper)read(data); System.out.println(t.getCacheObject().getName()); } private static byte[] write(Object obj) throws Exception { Output output = null; try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); output = new Output(baos); kryo.writeClassAndObject(output, obj); output.flush(); return baos.toByteArray(); }finally{ if(output != null) output.close(); } } private static Object read(byte[] data) throws Exception { if(data == null || data.length == 0) return null; Input ois = null; try { ByteArrayInputStream bais = new ByteArrayInputStream(data); ois = new Input(bais); return kryo.readClassAndObject(ois); } finally { if(ois != null) ois.close(); } } }