2013-02-11 147 views
3

我創建了一個使用struts2,使用mysql進行休眠的web應用程序。我移植到了框架,所以現在我有兩個應用程序的實例,一個是使用struts2編寫的。我可以看到劇烈的性能提升,但是當我使用JMeter來模擬加載時,struts2版本的縮放比較好,延遲低於play。這是爲什麼,這是否意味着更好地堅持使用struts2? web應用程序(我是從本地主機測試,無論是應用具有不同的模板語言相同的代碼,Struts2的上tomcat7運行時,在獨立的服務器構建運行播放)播放框架高延遲

  Struts 2 Version 

    Start time  Tread Name    Label   time(ms) Status  Bytes Latency 
1 10:24:49.854 videovixx struts2 1-6 HTTP Request  981  Success 9116 6 
2 10:24:49.830 videovixx struts2 1-5 HTTP Request 1101  Success 9116 16 
3 10:24:49.780 videovixx struts2 1-3 HTTP Request 1264  Success 9116 2 
4 10:24:49.774 videovixx struts2 1-2 HTTP Request 1309  Success 9116 15 
5 10:24:49.741 videovixx struts2 1-1 HTTP Request 1509  Success 9116 10 
6 10:24:49.868 videovixx struts2 1-7 HTTP Request 1513  Success 9116 43 
7 10:24:49.933 videovixx struts2 1-10 HTTP Request 1471  Success 9116 5 
8 10:24:50.294 videovixx struts2 1-27 HTTP Request 1156  Success 9116 134 
9 10:24:50.037 videovixx struts2 1-15 HTTP Request 1503  Success 9116 68 
10 10:24:49.950 videovixx struts2 1-11 HTTP Request 1608  Success 9116 18 

Play Version 
    Start time  Tread Name    Label  time(ms) Status  Bytes Latency 
1 10:24:49.809 videovixx play 2-1 HTTP Request  881 Success  13016 881 
2 10:24:49.803 videovixx play 2-2 HTTP Request 1562 Success  13016 1562 
3 10:24:49.839 videovixx play 2-3 HTTP Request 2146 Success  13016 2146 
4 10:24:49.920 videovixx play 2-7 HTTP Request 2065 Success  13016 2065 
5 10:24:50.080 videovixx play 2-15 HTTP Request 1905 Success  13016 1905 
6 10:24:50.242 videovixx play 2-23 HTTP Request 1743 Success  13016 1743 
7 10:24:50.493 videovixx play 2-36 HTTP Request 1492 Success  13016 1492 
8 10:24:50.570 videovixx play 2-39 HTTP Request 1619 Success  13016 1619 
9 10:24:50.646 videovixx play 2-43 HTTP Request 1571 Success  13016 1571 

    13016 2105 
+0

將部署它在tomcat上給我更好的性能? – user2054833 2013-02-11 15:58:20

+0

體系結構如何構建您的應用程序?許多數據庫調用?許多IO?同步或異步呼叫? – 2013-02-11 16:48:16

+0

Play有許多可以優化的字段,可以使用額外的Result緩存,優化數據庫查詢等等。儘管我不知道Struts,但我只是猜測,有些部分在編寫時可能寫得更好在Play的風格從頭開始,而不是移動解決方案1:1 ...也許。 – biesior 2013-02-11 16:59:52

回答

0

您需要根據配置的線程模型應用程序的配置文件。更具體地說,你的應用程序似乎高度同步documentation建議以下配置:

play { 
    akka { 
    event-handlers = ["akka.event.slf4j.Slf4jEventHandler"] 
    loglevel = WARNING 
    actor { 
     default-dispatcher = { 
     fork-join-executor { 
      parallelism-min = 300 
      parallelism-max = 300 
     } 
     } 
    } 
    } 
}