"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आइटम स्ट्रिंग संयोजन प्रदर्शन से सावधान रहें

आइटम स्ट्रिंग संयोजन प्रदर्शन से सावधान रहें

2024-11-08 को प्रकाशित
ब्राउज़ करें:408

1. ऑपरेटर के साथ स्ट्रिंग्स का संयोजन ( ):
स्ट्रिंग्स को संयोजित करने के लिए ऑपरेटर का उपयोग करना कुछ संयोजनों के लिए सुविधाजनक है, लेकिन स्ट्रिंग्स की अपरिवर्तनीयता के कारण बड़े पैमाने पर संचालन के लिए प्रदर्शन समस्याएं प्रस्तुत करता है।
हर बार जब एक नई स्ट्रिंग बनाई जाती है, तो सभी पिछली स्ट्रिंग्स की सामग्री की प्रतिलिपि बनाई जाती है, जिसके परिणामस्वरूप बड़े संयोजनों के लिए एक द्विघात समय होता है।

गलत उदाहरण (इसके साथ बार-बार संयोजन):

public String criaFatura(List itens) {
    String fatura = "";
    for (Item item : itens) {
        fatura  = item.toString();  // ineficiente para grandes listas
    }
    return fatura;
}

2. प्रदर्शन को बेहतर बनाने के लिए स्ट्रिंगबिल्डर का उपयोग करना:
का उपयोग करने के बजाय, स्ट्रिंगबिल्डर का उपयोग करें, जो आपको स्ट्रिंग्स को कुशलतापूर्वक संशोधित करने, आवश्यकतानुसार मेमोरी को गतिशील रूप से आवंटित करने की अनुमति देता है।
स्ट्रिंगबिल्डर के साथ संयोजन समय रैखिक है, जो प्रदर्शन में काफी सुधार करता है।

सही उदाहरण (स्ट्रिंगबिल्डर का उपयोग):

public String criaFatura(List itens) {
    StringBuilder fatura = new StringBuilder(itens.size() * 80);  // pré-alocação
    for (Item item : itens) {
        fatura.append(item.toString());
    }
    return fatura.toString();
}

3. प्रदर्शन तुलना:
ऑपरेटर को अनुकूलित करने के लिए जावा 6 में सुधार के बाद भी, स्ट्रिंगबिल्डर का उपयोग अधिक कुशल बना हुआ है। एक परीक्षण मशीन पर, 100 आइटम वाले परिदृश्य में स्ट्रिंगबिल्डर का उपयोग ऑपरेटर की तुलना में 6.5 गुना तेज था।

पूर्व-आवंटन के बिना अनुकूलन का उदाहरण:

public String criaFatura(List itens) {
    StringBuilder fatura = new StringBuilder();  // sem pré-alocação
    for (Item item : itens) {
        fatura.append(item.toString());
    }
    return fatura.toString();
}

4. कहानी का नैतिक पहलू है:
कई तारों को जोड़ने के लिए इसका उपयोग न करें। जैसे-जैसे संयोजनों की संख्या बढ़ती है, प्रदर्शन शीघ्र ही अस्वीकार्य हो जाता है।
बड़ी मात्रा में संयोजन के लिए StringBuilder.append या वर्ण सारणी जैसे विकल्पों का उपयोग करें।

5. अन्य विकल्प:
स्ट्रिंगबिल्डर के अलावा, आप बड़े पैमाने पर प्रसंस्करण के लिए या स्ट्रिंग्स को अधिक कुशलता से संयोजित करने के लिए वर्ण सरणियों का उपयोग करने पर विचार कर सकते हैं, खासकर जब प्रदर्शन पर बेहतर नियंत्रण की आवश्यकता होती है।

निष्कर्ष:
स्ट्रिंग्स को कुशलतापूर्वक संयोजित करने के लिए स्ट्रिंगबिल्डर का उपयोग करें।
लूप में या बड़ी मात्रा में स्ट्रिंग के लिए ऑपरेटर का उपयोग करने से बचें, क्योंकि संयोजन की संख्या बढ़ने पर प्रदर्शन में काफी गिरावट आती है।

पुस्तक से उदाहरण:

Item  Cuidado com o desempenho da concatenação de string

Item  Cuidado com o desempenho da concatenação de string

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/giselecoder/item-63-cuidado-com-o-desempenho-da-concatenacaode-string-2b67?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3