2009-12-01 19 views
18

मैं संपत्ति मूल्यों को देखने के लिए संसाधन बंडल और लोकेल का उपयोग कर रहा हूं। काफी सरलता से, कोड इस तरह दिखता है:जावा संसाधन बंडल प्रदर्शन

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

मेरा प्रश्न प्रदर्शन के बारे में है। क्लासपाथ पर संपत्ति फ़ाइलों तक पहुंचने से कैशिंग दृष्टिकोण त्वरित या बेहतर कार्यान्वयन होगा? मेरी समझ यह है कि संसाधन बंडल प्रदर्शन सामान्य रूप से बहुत अच्छा है।

गुण फ़ाइल (इस मामले में) 30 से कम लाइनें हैं (यानी, ~ 30 कुंजी/मूल्य जोड़े)।

मैं प्रदर्शन पर सवाल करता हूं क्योंकि हम उच्च लोड पृष्ठों पर समान दृष्टिकोण का उपयोग कर सकते हैं, और लुकअप-ऑन-डिमांड दृष्टिकोण महंगा साबित हो सकता है।

+0

अनुमानित नहीं कर सकते हैं। यह बेंचमार्किंग बहुत कठिन नहीं होना चाहिए, और यह अनिश्चितता को हटा देता है। – skaffman

+0

* और * समझने के लिए बेहतर है। एक अच्छी बेंचमार्क सभी स्थितियों में अच्छे प्रदर्शन की गारंटी नहीं है, यह समझना हमेशा बेहतर होता है कि हुड के नीचे क्या चल रहा है। –

उत्तर

22

Javadocs के अनुसार:

संसाधन बंडल getBundle कारखाने तरीकों द्वारा बनाई उदाहरणों डिफ़ॉल्ट रूप से कैश नहीं किया जाता है, और कारखाने के तरीकों समान संसाधन बंडल उदाहरण कई बार अगर यह कैश किए गए लौटने।

तो आपको अपने आप को कैशिंग करने की आवश्यकता नहीं है। लेकिन अगर आपको कैशिंग व्यवहार के बेहतर नियंत्रण की आवश्यकता है, तो आप getBundle(String, ResourceBundle.Control) ओवरलोड का उपयोग कर सकते हैं और Control में

+0

एएके, मुझे नहीं पता कि मैं इसे कैसे चूक गया। धन्यवाद, मिमी। – Chocula

संबंधित मुद्दे