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

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

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

    Sky's blog

    我和我追逐的夢

    常用鏈接

    統(tǒng)計

    其他鏈接

    友情鏈接

    最新評論

    ejb與java序列化(3)--開啟enable-call-by-reference

            問題終于找到,簡單的說是因為java 序列化的效率低下,而ejb調(diào)用之間又大量使用序列化,因此造成極大的性能消耗,而且也影響到響應(yīng)時間。仔細(xì)分析了一下項目情況,呵呵,情況非常嚴(yán)重,系統(tǒng)架構(gòu)是按照三層來設(shè)計的,每個層都是ejb,調(diào)下一層都是通過遠程接口,而且層之間可能還多個ejb的調(diào)用。
        (說句題外話,這種設(shè)計個人感覺非常,恩,不理解,性能殺手,而且ejb配置極其復(fù)雜,當(dāng)然或者ejb本來就是如此,ebj和weblogic對我來說是很陌生很高深的東西,目前還沒有深入掌握。)
        很自然的會想到ejb2.0中的配置項enable-call-by-reference,如果能夠開啟就可以避免遠程接口調(diào)用中的序列化。檢查配置文件發(fā)現(xiàn)幾乎能設(shè)置enable-call-by-reference的地方都設(shè)置為true了,奇
    怪,再檢查部署方式時發(fā)現(xiàn),恩,暈倒,被部署到不同的ear包中了。

        不同的ear包,enable-call-by-reference就算設(shè)置位true也開啟不了吧?
        接下來的改進方式,很自然就想到,如果能打包到同一個ear中,就可以在不改動代碼,不改動部署文件的情況下解決這個問題,似乎是一個不錯的好想法。
        謹(jǐn)慎起見,同時為了拿到足夠的證據(jù)來說法上層,先做個試驗先。

        模擬公司的項目結(jié)構(gòu),單獨寫了一個project,1個servlet負(fù)責(zé)接受外界請求,3個SLSB模擬三層工作,ejb直接只提供遠程接口,然后打包到同一個ear包進行測試。當(dāng)然enable-call-by-reference設(shè)置為true
    和false來進行對比測試。

        為了突出這個差異,ejb中都不進行任何操作,也不sleep。這樣消耗就主要體現(xiàn)在java 序列化的消耗上,而且為了模擬真實情況,參數(shù)設(shè)置的比較大,里面放了1000個instance。

        使用loadrunner,開啟100個測試線程,通過http訪問servlet,測試時間一分鐘,看能執(zhí)行多少次請求,測試結(jié)果如下:
        enable-call-by-reference = false : 558
        enable-call-by-reference = true : 21163
        由于這個結(jié)果的差異性實在是太大了,因此沒有必要進行多次測試,近40倍的差異完全可以反應(yīng)問題了,當(dāng)時實際項目中應(yīng)該遠沒有這么夸張。

        總結(jié)一下:
    1. java serialize 非常慢
    2. enable-call-by-reference可以有效避免這個開銷
        因此,能enable-call-by-reference就盡量enable-call-by-reference。

        ps:順便將這個測試的eclipse project也分享出來吧,請在這里下載
          http://www.fs2you.com/files/045b367d-5d23-11dd-a2ed-0014221b798a/

    posted on 2008-07-29 12:03 sky ao 閱讀(1772) 評論(5)  編輯  收藏 所屬分類: ejb

    評論

    # re: ejb與java系列化(3)--開啟enable-call-by-reference 2008-07-29 13:16 wpf

    系列化? 序列化?   回復(fù)  更多評論   

    # re: ejb與java系列化(3)--開啟enable-call-by-reference[未登錄] 2008-07-29 13:47 role0523

    java serialize ->系列化??  回復(fù)  更多評論   

    # re: ejb與java序列化(3)--開啟enable-call-by-reference 2008-07-29 14:05 飄然

    sorry,打錯了,已經(jīng)改過來了。我用拼音“xlh”,選錯后由于記憶功能所以每次都是“系列化”出來。呵呵,這幾個帖子都是從這幾天的郵件和資料中整理出來的,匆匆翻譯了一下就貼出來了,沒有檢查錯誤。

    感謝兩位提醒。  回復(fù)  更多評論   

    # re: ejb與java序列化(3)--開啟enable-call-by-reference 2008-07-29 21:15 advincenting

    呵呵 最近我也在搞這塊 多看看webLogic的參考資料 對于這種應(yīng)用 應(yīng)該將war
    ejb jar 達到一個Ear 包 有同一套繼承樹的ClassLoaders 他們之間可以用Local
    也就是PasS by reference 我大概測試 有50-100倍的差距 (相比Romote ) 有興趣我們聊聊 像你這種狀況 如果不能改的花 嘗試配置自定義ClassLoader
    MSN advincenting@gmail.com  回復(fù)  更多評論   

    # re: ejb與java序列化(3)--開啟enable-call-by-reference 2008-11-14 16:56 dcc

    傳智播客最新推出:EJB3.0視頻教程,黎活明老師傾心主講 http://www.itcast.cn/itcast_static/EJBNEWS.htm  回復(fù)  更多評論   

    主站蜘蛛池模板: 国产卡一卡二卡三免费入口| 97在线线免费观看视频在线观看| 波多野结衣免费在线| 免费中文熟妇在线影片| 国产成人免费片在线观看| 亚洲色自偷自拍另类小说| 亚洲AV日韩AV永久无码绿巨人| 亚洲精品免费在线| 三年片在线观看免费观看大全中国| a级毛片高清免费视频| 希望影院高清免费观看视频| 综合亚洲伊人午夜网 | 99re免费在线视频| 女人18一级毛片免费观看| 国产精品亚洲A∨天堂不卡| 亚洲中文字幕无码久久| 国产福利在线观看永久免费| 青青久在线视频免费观看| 亚洲va久久久久| 99免费视频观看| 亚洲一区电影在线观看| 久久久久免费视频| 国产成人免费片在线视频观看| 日韩毛片免费一二三| 午夜高清免费在线观看| 麻豆69堂免费视频| 成年在线观看免费人视频草莓| 久久精品蜜芽亚洲国产AV| 精品97国产免费人成视频| 久久亚洲成a人片| 最近高清中文字幕无吗免费看| 亚洲AV性色在线观看| 美女裸身网站免费看免费网站| 亚洲区日韩精品中文字幕| 成年女人看片免费视频播放器| 在线观看亚洲免费视频| 国产美女被遭强高潮免费网站| 久久国产精品免费一区二区三区| 色婷婷亚洲十月十月色天| 国产美女无遮挡免费视频网站| 国内精品久久久久影院免费|