【发布时间】:2015-05-04 05:41:13
【问题描述】:
有一个大型 JSF 应用程序同时被多个用户使用。
应用程序出现 PemGem 空间错误、CPU 使用增加(主要是由于垃圾收集)和 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;
}
包含这些非常常见的功能的最佳位置是什么。
- EJB - 单顿
- EJB - 无状态
- JSF 托管 Bean(控制器)- 应用范围
- JSF 托管 Bean(控制器)- 会话范围
- JSF 托管 Bean(控制器)- 请求范围
- 简单的 Java 类
提前致谢
【问题讨论】:
-
我怀疑这会对性能产生积极影响。您是否分析过您的应用程序?有帮助的是将复杂的 EL 转换为 bean 中的 getter 中的功能,并“懒惰”地进行操作,因此它们只被评估一次。