0

我们有遗留应用程序,它们很快就会开始使用常见的 jsp 页面。然而,就使用的技术而言,他们每个人都使用不同的视图技术。很快,他们就可以在这些页面中使用 jstl。

我想将我的包实现存储在请求中,以便像这样被 JSTL 使用

  request.setAttribute("bundle", getBundle());

我们的捆绑包可能有 10000 个条目。

我的问题:

在请求中存储大对象会带来额外的成本吗?

更新:我们的捆绑包是静态的。(每台服务器只有一个实例。)我的意思是我们在请求对象中只有一个引用。

也许我应该清楚地说明我的要求。已经存在的公共页面已经实现。而且这个实现共享一个非常不同的捆绑实现。它与 java.util.ResourceBundle 不同。这就是为什么我不能使用 jstl fmt 标签。

4

2 回答 2

3

如果您正在重用已经创建的包,那么我想存储不应该花费您(考虑到 - 请求也是 Java 对象并且只会引用另一个包含一些对象的集合的事实),但是如果您要在每个集合中创建包请求调用那么这将是昂贵的,同样不是从存储的角度来看,而是每次创建一个包含 10、000 个条目的包以及垃圾收集所花费的时间。

于 2011-02-23T18:46:26.453 回答
3

所有这些成本都是将对象指针填充到哈希映射中的成本,虽然不是零,但实际上为零。实际上,总共最多 20-30 个字节(取决于您主要运行的是 32b 还是 64b JVM)。

于 2011-02-23T18:49:41.083 回答