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

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

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

    隨筆 - 42  文章 - 71  trackbacks - 0
    <2009年7月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    留言簿

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    1. 目的

    Sitemesh 是一個很好的頁面渲染框架,基本上我現在所在項目都是適用sitemesh做頁面框架和整合渲染的,給頁面部分的工作帶來了很大的便利性。

    在sitemesh的文檔中,對于sitemesh的工作原理給出了一個圖示,根據這個圖可以看出,sitemesh是通過組合適用filter和標簽將被渲染頁面的內容抽取出來,再整合到一個統一的框架頁面中去。曾經有一段時間測試環境的Websphere服務器頻繁出現內存溢出的問題,在跟蹤內存溢出問題時,發現sitemesh組件使用StringBuffer對象進行大量內存申請的動作。這就需要檢測sitemesh具體是如何來分析頁面的,我的猜測就是將被渲染的頁面中的最終HTML代碼展出到一個大的字符串,然后根據關鍵標簽來進行分析和內容抽取,然后再整合到框架頁面中。先不管sitemesh是用什么方式來分析、抽取和整合的,他對于內存的影響是比較明顯的,所以,本實驗的目的就是比較使用sitemesh和不使用sitemesh時,運行期性能是否存在差異。

     

    2. 環境

    本實驗使用到的環境如下:

    · OS: Windows XP Professional SP2

    · HW: Intel Core 2 Duo T7300 2.0GHz, 2GB RAM

    · Web Server: Resin 3.2.1

    · Sitemesh: 2.3

    · Test Tool: Load Runner 8.0

    · JDK: Java HotSpot(TM) Client VM 1.5.0_09-b03

    · Analysis Tool: IBM Pattern Modeling and Analysis Tool for Java Garbage Collector 2.5

     

     

    3. 過程

    1. 使用ant example創建sitemesh自帶的example web應用

    2. 在sitemesh example應用中加入一個JSP頁面data.jsp,該頁面中包含一個43行7列的靜態表格,表格部分的HTML源碼約17KB

    3. 同樣制作上述數據的非sitemesh處理頁面data_nosm.jsp,在sitemesh的配置文件decorators.xml中將data_nosm.jsp添加到排除列表

    4. 以展開包的方式部署sitemesh example應用到resin服務器

    5. 設置resin的JVM參數為:-Xms64m -Xmx256m -XX:MaxPermSize=256m -Xss1m -verbose:gc -Xloggc:C:/apps/resin-3.2.1/gc.log -XX:+PrintGCDetails

    6. 在Load Runner中制作2個壓力測試腳本,一個用來請求data.jsp,一個用來請求data_nosm.jsp

    7. 在Load Runner中設計壓力測試場景:10個用戶,持續請求5分鐘,每個用戶的每輪請求中包含10次對于頁面的請求

    8. 重新啟動resin服務器,進行data.jsp的壓力測試。測試完成之后,收集Load Runner的數據以及GC的數據

    9. 重新啟動resin服務器,進行data_nosm.jsp的壓力測試。測試完成之后,收集Load Runner的數據以及GC的數據

    10. 數據匯總及處理

     

     

    4. 結果

    根據測試的結果,整理GC部分和壓力測試部分的數據如下:

     

    使用sitemesh

    未使用sitemesh

    GC次數

    6,746

    74

    Full GC次數

    1

    1

    GC消耗

    0.02

    0.00

    GC暫停(秒)

    7.00

    0.00

    最大持久代(字節)

    8,388,608.00

    8,388,608.00

    平均持久代(字節)

    6,036,328.00

    6,205,085.00

    最大舊生代(字節)

    61,983,744.00

    59,024,384.00

    平均舊生代(字節)

    42,583,685.00

    31,929,903.00

    最大新生代(字節)

    61,983,744.00

    59,024,384.00

    平均新生代(字節)

    4,426,710.00

    4,610,566.00

    請求次數

    137,344.00

    198,188.00

    平均每秒請求

    454.78

    658.43

    頁面平均響應時間(秒)

    0.042

    0.029

    上表的數據制作成圖表如下(為了便于圖表顯示,部分數據進行了放大):

     

    未命名

    在上表中,GC消耗和GC暫停考量指標中,未使用sitemesh的情況下顯示為0,是因為所用的分析工具IBM Pattern Modeling and Analysis Tool for Java Garbage Collector 2.5的顯示精度不足導致,實際的并非是真正的0,而應該是一個很小的數值。

    從數據上看,使用sitemesh和不使用sitemesh對于虛擬機堆內存的使用差異不太大,但是在GC次數上的差異很大。從GC日志的詳細信息可以看出,在使用sitemesh時,發生次要GC(Minor GC)的頻率非常的高,可以推斷在運行時期產生了大量的短生命周期的對象,然后又迅速的被釋放,GC在新生代就已經完成了。主要GC(Major GC, Full GC)在使用sitemesh和不使用的情況下,均發生了1次,而且這1次主要GC也是在resin啟動中發生的,不是應用在進行壓力測試時發生的。由于使用sitemesh時的GC次數遠遠大于不使用sitemesh,所以在整個測試過程中,GC上消耗的時間也是差異非常大的。

    從壓力測試的探測可以看出,不使用sitemesh時完成的請求數是使用sitemesh時的144.3%。同時頁面響應時間也僅為使用sitemesh時的69.0%。

     

    5. 結論

    從上述測試數據來分析,使用sitemesh對于系統性能是有較大的影響的,主要表現在GC的次數會顯著增多。建議在大壓力、頁面內容大的系統中,慎重選擇sitemesh,并且使用之前對其帶來的性能影響進行一個較為合理、全面的評估。

    posted on 2009-07-14 22:17 YODA 閱讀(3356) 評論(8)  編輯  收藏

    FeedBack:
    # re: Sitemesh對于性能的影響實驗報告 2009-07-15 00:00 俊星
    條分縷析,樓主的文章很有嚴謹縝密啊。  回復  更多評論
      
    # re: Sitemesh對于性能的影響實驗報告[未登錄] 2009-07-15 09:42 YODA
    多謝俊星兄鼓勵!  回復  更多評論
      
    # re: Sitemesh對于性能的影響實驗報告[未登錄] 2009-07-15 09:45 a
    真的很嚴謹,值得學習。  回復  更多評論
      
    # re: Sitemesh對于性能的影響實驗報告 2009-07-15 11:19 ahx
    非常感謝分析,是否可以用一個實際項目再測試一下呢。 例如,我們系統的一個頁面(非信息展示頁面)一般一個請求的處理時間60-80毫秒,這時會不會sitemesh對性能的影像就可以忽略了呢?   回復  更多評論
      
    # re: Sitemesh對于性能的影響實驗報告 2009-07-15 11:57 99讀書人
    很不錯哦  回復  更多評論
      
    # re: Sitemesh對于性能的影響實驗報告[未登錄] 2009-07-15 12:18 YODA
    謝謝樓上諸位兄臺的支持

    to: ahx 如果你的頁面響應時間能夠在系統壓力高峰期控制在60-80毫秒這么短的時間,那么我覺得sitemesh的影響相對比重反倒更大,但是絕對值應該很小。其實用與不用,只要能夠達到客戶要求的壓力指標就可以了,比如客戶會給定一個多少并發的前提下,要求系統達到多少TPS。一切都是為了滿足需求,呵呵  回復  更多評論
      
    # re: Sitemesh對于性能的影響實驗報告 2009-07-16 21:20 javafuns
    性能肯定是要受到影響的,尤其是頁面內容越多,這種影響應該更明顯  回復  更多評論
      
    # re: Sitemesh對于性能的影響實驗報告 2010-03-20 10:24 rplees
    一串數字,然而切讓人付出心血。
    謝謝你的數字。我找到我所要的答案啦。  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 99久久人妻精品免费二区| 亚洲Av无码国产情品久久| ssswww日本免费网站片| 亚洲人xxx日本人18| 亚洲AV无一区二区三区久久| 免费国产真实迷j在线观看| 国产桃色在线成免费视频| 国产白丝无码免费视频| 三年片免费高清版 | 中文字幕手机在线免费看电影| 亚洲色偷偷综合亚洲av78| 久久久亚洲欧洲日产国码aⅴ| 国产亚洲一区区二区在线| 免费国产成人高清视频网站| 免费观看男人免费桶女人视频| 每天更新的免费av片在线观看 | 成人免费无码精品国产电影| 99久久这里只精品国产免费| 2019中文字幕在线电影免费 | 亚洲第一网站男人都懂| 日韩特黄特色大片免费视频| 青青草免费在线视频| 日本免费xxxx色视频| 狼群影院在线观看免费观看直播| 日本免费一区二区久久人人澡| 在线观看人成视频免费无遮挡 | 亚洲成A∨人片在线观看不卡| 亚洲综合色婷婷七月丁香| 国产成人精品日本亚洲专区61| 亚洲无码精品浪潮| 亚洲精品无码久久久| 亚洲人成人网站在线观看| 亚洲黄片手机免费观看| 国产啪亚洲国产精品无码 | www在线观看播放免费视频日本| 免费福利在线观看| 精品无码一级毛片免费视频观看 | 久久精品国产精品亚洲色婷婷| 亚洲成av人片天堂网| 久久99亚洲网美利坚合众国| 亚洲日韩在线视频|