2015-03-03 27 views
0

有幾個併發用戶使用的大型JSF應用程序。在JSF應用程序中插入常用函數的最佳位置?

該應用程序獲取PemGem空間錯誤,CPU使用增加(主要是由於gurbage收集)和RAM使用率增加。我們需要優化代碼庫以解決這些問題。

應用程序廣泛使用少數常用功能。我想知道哪個是包含這些功能以優化內存和CPU使用率的最佳位置。

示例功能(如果必要的話,我們可以簡單地將這些靜態函數)

public long calculateAgeInDays(Date dob, Date toDate) { 
    if (dob == null || toDate == null) { 
     return 0l; 
    } 
    long ageInDays; 
    ageInDays = (toDate.getTime() - dob.getTime())/(1000 * 60 * 60 * 24); 
    if (ageInDays < 0) { 
     ageInDays = 0; 
    } 
    return ageInDays; 
} 

什麼是包括這些非常常見的功能的最佳場所。

  1. EJB - Singlton
  2. EJB - 無國籍
  3. JSF託管Bean(控制器) - 應用程序作用域
  4. JSF託管Bean(控制器) - 會話範圍
  5. JSF託管Bean(控制器) - 請求Scoped
  6. 簡單Java類

在此先感謝

+1

我懷疑這會對性能產生積極影響。你有沒有介紹你的申請?有助於將複雜的EL轉換爲bean中的getter功能,並執行「懶惰」操作,因此它們僅被評估一次。 – Kukeltje 2015-03-03 21:50:43

回答

1

我會把這些方法保存爲Util類中的靜態方法。沒有理由將它們作爲EJB或JSF bean的一部分保留,如果它們在應用程序中廣泛使用的話。但是,不確定它對性能的影響。

+0

Util類是否表示沒有任何註釋的普通Java類? – 2015-03-03 14:32:24

+0

是的,帶有靜態方法的簡單Java類。 – 2015-03-03 14:41:00

相關問題