أداء Java ResultBundle
-
11-09-2019 - |
سؤال
أنا أستخدم عبارة عن صيانة وخارجي للبحث عن قيم الملكية. بكل بساطة، يبدو الكود مثل هذا:
public static String getPropertyValue(Locale locale, String resourceName, String key) {
ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
return resource.getString(key);
}
سؤالي عن الأداء. هل سيكون نهج التخزين المؤقت أسرع أو أفضل من الوصول إلى ملفات الممتلكات على ClassPath؟ فهمي هو أن أداء ResoutsBundle جيد للغاية بشكل عام.
ملف الخصائص (في هذه الحالة) أقل من 30 خطا (أي، ~ 30 أزواج المفتاح / القيمة).
أتساءل الأداء لأنه يمكننا استخدام نهج مماثل على صفحات عالية التحميل، وقد يثبت نهج البحث عند الطلب مكلفا.
المحلول
بحسب ال جافادوكس:
مثيلات حزمة الموارد التي أنشأتها
getBundle
يتم تخزين طرق المصنع بشكل افتراضي، وطرق المصنع إرجاع نفس مثيل حزمة الموارد عدة مرات إذا تم تخزينها مؤقتا.
لذلك يجب أن لا تحتاج إلى القيام التخزين المؤقت لوحدك. ولكن إذا كنت بحاجة إلى سيطرة محتمة على سلوك التخزين المؤقت، يمكنك استخدام getBundle(String, ResourceBundle.Control)
الزائد وتمر مخصص Control
في.