<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 閱讀(1166) 評論(0)  編輯  收藏 所屬分類: ejb

    主站蜘蛛池模板: 麻豆69堂免费视频| 7777久久亚洲中文字幕| 麻豆一区二区三区蜜桃免费| 好吊妞视频免费视频| 亚洲另类精品xxxx人妖| 91人人区免费区人人| 亚洲电影国产一区| 中文字幕免费在线观看| 91亚洲国产成人久久精品网站| 无码人妻久久一区二区三区免费| 亚洲av无码成人黄网站在线观看| 97热久久免费频精品99| 亚洲小视频在线播放| 成年女人看片免费视频播放器| 亚洲av成人一区二区三区| 卡1卡2卡3卡4卡5免费视频| 色窝窝亚洲av网| 亚洲乱码国产一区网址| 久久不见久久见免费影院www日本 久久WWW免费人成—看片 | 最近中文字幕mv免费高清在线 | 亚洲中文字幕久久精品无码APP| 久久久WWW成人免费精品| 亚洲免费观看视频| h视频在线免费看| 老牛精品亚洲成av人片| 精品国产亚洲男女在线线电影| 高清一区二区三区免费视频| 亚洲一区精品视频在线| 又爽又高潮的BB视频免费看| a级毛片无码免费真人久久| 久久久亚洲欧洲日产国码是AV| 扒开双腿猛进入爽爽免费视频| 免费国产污网站在线观看不要卡| 亚洲一区二区三区无码中文字幕| 精品无码人妻一区二区免费蜜桃| 亚洲熟女综合色一区二区三区| 亚洲国产成人精品女人久久久 | 久久这里只有精品国产免费10| 美女18毛片免费视频| 亚洲成AV人片天堂网无码| 97无码免费人妻超级碰碰夜夜|