我们有遗留应用程序很快就会开始使用常见的jsp页面。然而,就使用的技术而言,它们中的每一个都使用不同的视图技术。不久,他们可以在这些页面中使用jstl。
我想将我的bundle实现存储在请求中,以供JSTL使用,就像这样
request.setAttribute("bundle", getBundle());
我们的捆绑包可能有10000个条目。
我的问题:
在请求中存储大对象会带来额外的成本吗?
更新:我们的捆绑包是静态的。 (每个服务器只有一个实例。)我的意思是我们在请求对象中只有一个引用。
也许我应该明确说明我的要求。已经存在的常用页面已经实现。此实现正在共享一个非常不同的捆绑实现。它与java.util.ResourceBundle不同。这就是为什么我不能使用jstl fmt标签。
答案 0 :(得分:3)
如果你正在重用已经创建的bundle,那么我想存储不应该花费你(考虑到这样的事实 - 请求也是Java对象,并且只会引用另一个包含某些对象的集合),但如果你正在创建捆绑在每个请求调用然后这将是昂贵的,再次不是从存储的角度来看,但每次创建一个包含10,000个条目的捆绑包以及垃圾收集的时间。
答案 1 :(得分:3)
所有这些都花费了你将对象指针填充到哈希映射中的成本,该哈希映射虽然不是零,但实际上是零。事实上,总共多达20-30个字节(取决于你是否主要运行32b或64b JVM)。