<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sky's blog

    我和我追逐的夢

    常用鏈接

    統計

    其他鏈接

    友情鏈接

    最新評論

    ejb與java序列化(2)--測試代碼

            接上篇,有興趣的朋友可以直接拿我的測試代碼自行測試,請自行修改諸如線程數,執行時間,序列化的數據量大小等參數。如果想嘗試做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
    ++;
            }
        }

        
    /**
         * 
    @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) + " ");

            } 
    catch (IOException e) {
                e.printStackTrace();
            }
        }

        
    private static class Data implements Serializable {
            
    private static final long serialVersionUID = -376987039014824563L;
            
    private static final ArrayList DEFAULT = new ArrayList();
            
    static {
                
    for (int i = 0; i < ITEMS_COUNT_IN_TEST_OBJECT; i++) {
                    DEFAULT.add(
    new DataItem(i));
                    
    // DEFAULT.add(DataItem.a + i);
                }
            }
            
    private ArrayList content = DEFAULT;
        }

        
    private static class DataItem implements Serializable {
            
    private static final long serialVersionUID = 1L;
            
    private static final String a = "sdfsdfsdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
            
    private int number;
            
    private String content;

            
    public DataItem(int number) {
                
    this.number = number;
                
    this.content = a + number;
            }
        }
    }

    也可以從這里直接下載到完整的eclipse項目,除上面的代碼外,還有thread dump文件和已經設置好的jprobe的配置文件。
    (blogjava不能上傳文件,所以只好放fs2you)
    http://www.fs2you.com/files/59a26119-5d1a-11dd-ad4f-0014221b798a/

    posted on 2008-07-29 10:36 sky ao 閱讀(1165) 評論(0)  編輯  收藏 所屬分類: ejb

    主站蜘蛛池模板: 国内成人精品亚洲日本语音| 四虎1515hm免费国产| 国产免费人成视频尤勿视频| 国产精品亚洲精品| 精品亚洲成AV人在线观看| 久久久久亚洲AV综合波多野结衣 | 午夜免费不卡毛片完整版| 久久精品私人影院免费看| 国产A∨免费精品视频| 亚洲AV无码资源在线观看| 亚洲乱码在线播放| 中文字幕亚洲综合久久| 国产精品亚洲片在线| 亚洲中文字幕无码爆乳AV| jizzjizz亚洲| 免费一区二区三区四区五区| 免费毛片网站在线观看| 野花高清在线观看免费3中文| 16女性下面扒开无遮挡免费| 97在线免费视频| 国产一级a毛一级a看免费视频 | 免费观看的毛片大全| **真实毛片免费观看| 一区二区三区在线免费看| 国产中文字幕在线免费观看| 国产免费人成视频尤勿视频| 一道本不卡免费视频| 四虎永久在线精品免费一区二区 | 在线免费观看国产视频| 免费看美女让人桶尿口| 免费看美女被靠到爽| 日韩免费三级电影| 国产成人免费全部网站 | 亚洲精品乱码久久久久蜜桃| 亚洲啪AV永久无码精品放毛片| 亚洲国产乱码最新视频| 亚洲日韩AV一区二区三区中文 | 久久久久久久免费视频| 啦啦啦高清视频在线观看免费| 无人影院手机版在线观看免费| 一本无码人妻在中文字幕免费|