बहुत आसान सवाल है, लेकिन यह जावा/सी ++ व्यक्ति से जावा की जटिलताओं में आ रहा है।स्ट्रिंग प्रतिस्थापित करें सभी() बनाम Matcher replaceAll() (प्रदर्शन अंतर)
मुझे समझ में आता है कि मैं उत्तर पाने के लिए जुनीट और कुछ प्रदर्शन परीक्षणों को आग लगा सकता हूं; लेकिन मैं बस सोच रहा हूं कि यह वहां है या नहीं।
प्रदर्शन के संदर्भ में String.replaceAll() और Matcher.replaceAll() (Regex.Pterntern से बनाए गए एक मचर ऑब्जेक्ट पर) के बीच अंतर ज्ञात हैं?
इसके अलावा, दोनों के बीच उच्च स्तरीय एपीआई 'आश अंतर क्या हैं? (अचल स्थिति, NULLs हैंडलिंग, रिक्त स्ट्रिंग हैंडलिंग, कॉफी आदि बनाने)
से परे जाने का प्राथमिक कारण है, जैसा कि नीचे वर्णित है, पैटर्न संकलन का प्रदर्शन जुर्माना। यदि आप निरंतर रेगेक्स का उपयोग कर रहे हैं, तो इसे संकलित करें और इसे स्थिर स्थिरता में चिपकाएं। – james
अंत में आपकी "इसलिए" टिप्पणी केवल 1 कॉल के लिए लागू होती है, जिस स्थिति में प्रदर्शन मीट्रिक वास्तव में प्रासंगिक नहीं हैं। यदि एक ही regex के साथ सभी को बदलने के लिए दोहराए गए कॉल हैं तो String.replaceAll संकलित पैटर्न को कैशिंग करने से धीमा है। –
अच्छे अंक के लिए धन्यवाद, मैंने अपना जवाब संपादित कर लिया है। – coobird