Java ResourceBundle 性能

发布于 2024-08-12 15:40:10 字数 465 浏览 2 评论 0原文

我正在使用 ResourceBundle 和 Locale 来查找属性值。很简单,代码如下所示:

  public static String getPropertyValue(Locale locale, String resourceName, String key) {
    ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
    return resource.getString(key);
  }

我的问题是关于性能的。与访问类路径上的属性文件相比,缓存方法是否会更快或更好的实现?我的理解是,ResourceBundle 的性能总体来说非常好。

属性文件(在本例中)少于 30 行(即约 30 个键/值对)。

我对性能提出质疑,因为我们可以在高负载页面上使用类似的方法,而按需查找方法可能成本高昂。

I am using a ResourceBundle and Locale to lookup property values. Quite simply, the code looks like this:

  public static String getPropertyValue(Locale locale, String resourceName, String key) {
    ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
    return resource.getString(key);
  }

My question is about performance. Would a caching approach be quicker or a better implementation than accessing property files on the classpath? My understanding is that ResourceBundle performance is very good in general.

The properties file (in this case) is fewer than 30 lines (i.e., ~30 key/value pairs).

I question the performance since we could use a similar approach on high-load pages, and the lookup-on-demand approach might prove costly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人疚 2024-08-19 15:40:10

根据 Javadocs

默认情况下会缓存 getBundle 工厂方法创建的资源包实例,如果已缓存,工厂方法会多次返回同一个资源包实例。

所以你不需要自己做缓存。但是,如果您需要对缓存行为进行更细粒度的控制,可以使用 getBundle(String, ResourceBundle.Control) 重载并传递自定义的 Control 中。

According to the Javadocs:

Resource bundle instances created by the getBundle factory methods are cached by default, and the factory methods return the same resource bundle instance multiple times if it has been cached.

So you shouldn't need to do caching on your own. But if you need finer-grained control of the caching behavior, you can use the getBundle(String, ResourceBundle.Control) overload and pass a customized Control in.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文