के बजाय {} के साथ स्वरूपण के लॉगजर slf4j फायदे स्ट्रिंग concatenation के बजाय {}
का उपयोग करने का कोई फायदा है?स्ट्रिंग concatenation
एक उदाहरण slf4j
logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
logger.debug("Temperature set to"+ t + ". Old temperature was " + oldT);
के बजाय
से मुझे लगता है कि यह गति अनुकूलन के बारे में है, क्योंकि मापदंडों मूल्यांकन (और स्ट्रिंग संयोजन) एक कॉन्फ़िग फ़ाइल के आधार पर क्रम में बचा जा सकता है। लेकिन केवल दो पैरामीटर संभव हैं, फिर कभी-कभी स्ट्रिंग कॉन्सटेनेशन की तुलना में कोई अन्य विकल्प नहीं होता है। इस मुद्दे पर विचारों की आवश्यकता है।
संदेह की पुष्टि हुई, धन्यवाद –
अप्रयुक्त स्ट्रिंग कॉन्सटेनेशन (यानी डिबगिंग स्टेटमेंट) से बचा जाना चाहिए। या तो (अत्यधिक वर्बोज़ लेकिन कुशल) लॉग-स्तरीय चेक या (स्लिमर, लेकिन शायद मामूली ओवरहेड) ऑब्जेक्ट सरणी पैरामीटर का उपयोग करें। (मैं बाद वाले को पसंद करूंगा, सभी चीजें बराबर होंगी।) यह कहना मुश्किल है कि स्ट्रिंग कॉन्सैट महत्वपूर्ण नहीं होगा/प्रदर्शन को प्रभावित नहीं करेगा।ऑब्जेक्ट सरणी निर्माण सिद्धांत में इनलाइन और अनुकूलित किया जा सकता है और "वास्तव में" कोई फर्क नहीं पड़ता (बनाम इच्छापूर्ण सोच)। (यह समयपूर्व अनुकूलन नहीं है, यह केवल पहली बार सही/बेहतर कुछ करने का मामला है।) – michael
नोट: नवीनतम slf4j में, java5 var-args समर्थित हैं – michael