<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 閱讀(3357) 評論(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
    一串數字,然而切讓人付出心血。
    謝謝你的數字。我找到我所要的答案啦。  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 456亚洲人成在线播放网站| 四虎成人精品永久免费AV| 亚洲三级视频在线| 亚洲人成在线播放网站| 日本免费一二区在线电影| 久久综合国产乱子伦精品免费| 久久亚洲精品成人无码| 亚洲乱码卡一卡二卡三| 亚洲电影中文字幕| 中文字幕亚洲综合久久男男| 最近最新中文字幕完整版免费高清| 久久免费区一区二区三波多野| 人人爽人人爽人人片A免费| 亚洲国产成人综合精品| 亚洲AV色吊丝无码| 亚洲国产精品综合久久久| 亚洲va在线va天堂va888www| 亚洲精品乱码久久久久久自慰| 亚洲国产成人乱码精品女人久久久不卡| 免费看美女让人桶尿口| 亚洲欧美日韩中文高清www777| 亚洲无人区午夜福利码高清完整版| 四虎永久免费影院| 成人免费777777| 成人免费视频试看120秒| 久久久久久国产a免费观看黄色大片 | 久久精品国产亚洲麻豆| 久久久久亚洲?V成人无码| 亚洲精品高清在线| 亚洲国产高清在线一区二区三区| 国产国产人免费人成免费视频| 免费看a级黄色片| 国产在线播放免费| 日韩亚洲国产综合久久久| 免费一级毛片一级毛片aa| 亚洲国产a级视频| 久久精品国产精品亚洲艾草网美妙| 久久久久亚洲精品天堂久久久久久| 亚洲一区视频在线播放| 久久青青草原亚洲av无码| 国产亚洲精品精华液|