Cho*_*ula 22 java performance resourcebundle
我正在使用ResourceBundle和Locale来查找属性值.很简单,代码如下所示:
public static String getPropertyValue(Locale locale, String resourceName, String key) {
ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
return resource.getString(key);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是关于表现.缓存方法比访问类路径上的属性文件更快还是更好?我的理解是,ResourceBundle的性能总的来说非常好.
属性文件(在这种情况下)少于30行(即,~30个键/值对).
我质疑性能,因为我们可以在高负载页面上使用类似的方法,并且按需查找方法可能证明是昂贵的.
Mic*_*ers 26
根据Javadocs:
getBundle默认情况下,工厂方法创建的资源包实例会被缓存,如果已缓存,则工厂方法会多次返回相同的资源包实例.
所以你不应该自己做缓存.但是,如果您需要更精细的控制缓存行为,您可以使用getBundle(String, ResourceBundle.Control)重载并传递自定义Control.