messageserializationtest.java
来自「JGRoups源码」· Java 代码 · 共 129 行
JAVA
129 行
// $Id: MessageSerializationTest.java,v 1.10 2005/08/10 11:31:03 belaban Exp $package org.jgroups.tests;/** * @author Filip Hanik * @author Bela Ban * @version 1.0 */import org.jgroups.Message;import org.jgroups.util.MagicObjectOutputStream;import org.jgroups.util.MagicObjectInputStream;import org.jgroups.util.ExposedByteArrayOutputStream;import org.jgroups.util.Buffer;import org.jgroups.conf.ClassConfigurator;import org.jgroups.protocols.*;import org.jgroups.stack.IpAddress;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import java.net.InetAddress;import java.io.*;public class MessageSerializationTest { static final Log log=LogFactory.getLog(MessageSerializationTest.class); public MessageSerializationTest() { } public static void main(String[] args) throws Exception { boolean add_headers=false; InetAddress addr=InetAddress.getLocalHost(); int num=10000; boolean use_magic=false; boolean use_streamable=false; for(int i=0; i < args.length; i++) { if("-add_headers".equals(args[i])) { add_headers=true; continue; } if("-num".equals(args[i])) { num=Integer.parseInt(args[++i]); continue; } if("-use_magic".equals(args[i])) { use_magic=true; continue; } if("-use_streamable".equals(args[i])) { use_streamable=true; continue; } help(); return; } ClassConfigurator.getInstance(true); long start=System.currentTimeMillis(); for(int i=0; i < num; i++) { Message m=new Message(new IpAddress(addr, 5555), new IpAddress(addr, 6666), new byte[1000]); if(add_headers) addHeaders(m); ExposedByteArrayOutputStream msg_data=new ExposedByteArrayOutputStream(); Buffer jgbuf; if(use_streamable) { DataOutputStream dos=new DataOutputStream(msg_data); m.writeTo(dos); dos.close(); } else { ObjectOutputStream msg_out=use_magic? new MagicObjectOutputStream(msg_data) : new ObjectOutputStream(msg_data); m.writeExternal(msg_out); // msg_out.writeObject(m); msg_out.close(); } jgbuf=new Buffer(msg_data.getRawBuffer(), 0, msg_data.size()); ByteArrayInputStream msg_in_data=new ByteArrayInputStream(jgbuf.getBuf(), jgbuf.getOffset(), jgbuf.getLength()); Message m2=(Message)Message.class.newInstance(); if(use_streamable) { DataInputStream dis=new DataInputStream(msg_in_data); m2.readFrom(dis); dis.close(); } else { ObjectInputStream msg_in=use_magic? new MagicObjectInputStream(msg_in_data) : new ObjectInputStream(msg_in_data); m2.readExternal(msg_in); // Message m2=(Message)msg_in.readObject(); msg_in.close(); } } long stop=System.currentTimeMillis(); System.out.println("Serializing and deserializing a message " + num + " times took " + (stop - start) + "ms."); } /** * Adds some dummy headers to the message */ static void addHeaders(Message msg) { msg.putHeader("UDP", new UdpHeader("MyGroup")); msg.putHeader("PING", new PingHeader(PingHeader.GET_MBRS_REQ, null)); msg.putHeader("FD_SOCK", new FD_SOCK.FdHeader()); msg.putHeader("VERIFY_SUSPECT", new VERIFY_SUSPECT.VerifyHeader()); msg.putHeader("STABLE", new org.jgroups.protocols.pbcast.STABLE.StableHeader()); msg.putHeader("NAKACK", new org.jgroups.protocols.pbcast.NakAckHeader()); msg.putHeader("UNICAST", new UNICAST.UnicastHeader()); msg.putHeader("FRAG", new FragHeader()); msg.putHeader("GMS", new org.jgroups.protocols.pbcast.GMS.GmsHeader()); } static void help() { System.out.println("MessageSerializationTest [-help] [-add_headers] [-num <iterations>] " + "[-use_magic] [-use_streamable]"); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?