ejb与java序列化(2) 测试代码 - 编程入门网
ejb与java序列化(2) 测试代码时间:2011-01-22接上篇,有兴趣的朋友可以直接拿我的测试代码自行测试,请自行修改诸如线程数,执行时间,序列化的数据量大小等参数。如果想尝试做thread dump,可以打开相关的两个注释,会更方便一些,代码中都有相应的注释可供参考。 测试代码如下: package test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.ArrayList; public class Test implements Runnable { //Notice! set the three test parameter to what you want first /** * thread count to run test */ private static final int THREAD_COUNT = 50; /** * time in seconds to run test */ private static final long TEST_TIME_SECOND = 1 * 30; /** * during test, we serialize a Data instance with an ArrayList that contains DataItem instance. * This is to set how many DataItem in the ArrayList. */ private static final long ITEMS_COUNT_IN_TEST_OBJECT = 1000; private static int finishedCount = 0; private static boolean needStop = false; private static Object needStopLock = new Object(); private static Object finishedCountLock = new Object(); private static boolean isNeedStop() { synchronized (needStopLock) { return needStop; } } private static void setNeedStop() { synchronized (needStopLock) { needStop = true; } } private static void addFinisedCount() { synchronized (finishedCountLock) { finishedCount++; } } ejb与java序列化(2) 测试代码(2)时间:2011-01-22/** * @param args */ public static void main(String[] args) { // run it first to load all the class new Test().test(); // to dump thread open these // try { // Thread.sleep(20 * 1000); // System.out.println("main sleep. go to find pid, we need it later to send signal"); // Thread.sleep(2 * 1000); // System.out.println("prepard to dump"); // } catch (InterruptedException e) { // e.printStackTrace(); // } long timeBegin = System.currentTimeMillis(); for (int i = 0; i < THREAD_COUNT; i++) { Thread t = new Thread(new Test()); t.setName("testthread" + i); t.start(); } long timeEnd = timeBegin + TEST_TIME_SECOND * 1000; while (System.currentTimeMillis() < timeEnd) { try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } } setNeedStop(); System.out.println(THREAD_COUNT + " thread finished " + finishedCount + " times in " + TEST_TIME_SECOND + " seconds"); // to dump thread open these // try { // Thread.sleep(5 * 1000); // //System.out.println("dump now"); // } catch (InterruptedException e) { // e.printStackTrace(); // } } public void run() { while (!isNeedStop()) { test(); addFinisedCount(); } } private void test() { ByteArrayOutputStream bos = new ByteArrayOutputStream(); Data data = new Data(); try { // long time1 = System.currentTimeMillis(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(data); bos.toByteArray(); // long time2 = System.currentTimeMillis(); // System.out.print((time2 - time1) + &qu |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |