2012-02-24 62 views
0

我一個Struts1應用程序轉換爲Struts2。作爲開始,我只移植了一些操作,以瞭解它們在Struts2中的行爲。其中一個操作每秒發送一次由客戶端發送的Ajax請求。在當前的Struts1實現中,請求需要大約10-15毫秒才能執行,我可以在Firebug中看到它。 Struts2版本現在需要超過250毫秒。我將分析攔截器添加到操作中,我可以看到大部分時間都用於設置操作的執行。在攔截器上花費的時間可以忽略不計。Struts2的性能

難道正常嗎?

在此先感謝您的幫助。

回答

1

follwing的步驟,

  1. 使用struts.dev = 「假」 關閉發展模式;
  2. 創建自己的默認interceptorStack哪些具體到項目,並刪除不使用unneccesary攔截。
  3. 如需進一步信息,請參考以下鏈接struts.apache.org/2.2.3/docs/performance-tuning.html
  4. ,並且可以使用定時器攔截所謂定時器找到行動的執行時間。

  5. ,也是我試圖與JSTL,OGNL標籤來比較jsp頁面渲染時間的性能。在我的情況下,OGNL取得了最佳表現。

+0

「struts.dev = false」做到了。我現在回到我之前使用Struts1的時機。非常感謝。 – 2012-02-25 12:26:55

1

有基準由你提到的performance.The一個應用程序的不同方面似乎令人非常震驚的差別是有些25倍。 不確定你設置Action的執行是什麼意思?所以它很難提出任何特別的事情。 我們喜歡9-10 S2應用程序,而且目前它們都沒有任何性能問題。

我的建議是使用一些分析工具,並得到日其特定塊導致應用程序很慢,你身邊總是可以按照提示在其他答案提示信息。

是否使用的是S2的版本

+0

這就是我所說的「建立行動的執行」。從剖析攔截器:'[0ms] - 創建DefaultActionProxy:[0ms] - actionCreate:currenttime [359ms] - invoke:[359ms] - 攔截器:異常......所有執行時間都花在創建操作上。 – 2012-02-25 13:59:20

+0

@ D.Laroche:你的問題我相信已經解決了,因爲S2在開發模式時傾向於爲每個請求重新加載每個配置和其他東西 – 2012-02-25 15:01:15