<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精品视频在线观看免费| 亚洲免费无码在线| WWW国产成人免费观看视频| 亚洲一区二区三区在线视频| 免费一级全黄少妇性色生活片 | 亚洲av无码不卡| 国产麻豆成人传媒免费观看| 久久青青成人亚洲精品| 久久久久久AV无码免费网站下载| 国产亚洲综合网曝门系列| a成人毛片免费观看| 亚洲Av永久无码精品三区在线 | 亚洲精华国产精华精华液网站| 毛片免费全部免费观看| 亚洲AV无码片一区二区三区| 免费成人av电影| 亚洲一级片免费看| 亚洲国产精品免费视频| 无限动漫网在线观看免费| 日韩色日韩视频亚洲网站| 亚洲乱码日产精品a级毛片久久| a级片在线免费看| 亚洲国产综合精品| 国产免费久久精品| 国产精品偷伦视频观看免费| 亚洲 日韩经典 中文字幕| 亚洲av午夜精品一区二区三区| 在线免费观看h片| 亚洲一区二区三区在线| 亚洲国产精品久久久久网站| 91精品视频免费| 国产亚洲精品成人久久网站| 亚洲AV综合色一区二区三区| 性xxxx视频播放免费| 中文字幕免费观看全部电影| 67194在线午夜亚洲| 亚洲综合最新无码专区| 手机看黄av免费网址| 国产精品美女久久久免费 |