2015-03-03 25 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

相关问题