2010-01-20 16 views
6

कोई भी उस ओपनसोर्स "प्रोजेक्ट" के नाम को याद करता है जिसने जावा में स्ट्रिंग के लिए कुछ अच्छा प्रतिस्थापन विकसित किया है?जावा में स्ट्रिंग के लिए प्रदर्शन प्रतिस्थापन

मुझे पता है कि एक है, बस इसे Google में नहीं ढूंढ सकता और नाम याद नहीं है। (मैं StringBuilder के बारे में बात नहीं कर रहा)

धन्यवाद

उत्तर

7

आप ropes के लिए देख रहे हैं?

एक रस्सी स्ट्रिंग्स के लिए एक उच्च प्रदर्शन प्रतिस्थापन है। "Ropes: an Alternative to Strings" में विस्तार से वर्णित डेटास्ट्रक्चर, सामान्य स्ट्रिंग संशोधनों जैसे प्रीपेन्ड, एपेंड, डिलीट और डालने के लिए स्ट्रिंग और स्ट्रिंगबफर दोनों की तुलना में असम्बद्ध रूप से बेहतर प्रदर्शन प्रदान करता है। स्ट्रिंग्स की तरह, रस्सी अपरिवर्तनीय हैं और इसलिए बहु-थ्रेडेड प्रोग्रामिंग में उपयोग के लिए उपयुक्त हैं।

6

बेहतर सामान्य उद्देश्य प्रतिस्थापन नहीं है। जावा के स्ट्रिंग क्लास को सामान्य उद्देश्य के उपयोग के लिए बेहद अच्छी तरह लागू किया गया है।

  • Ropes बड़े तार के सस्ते संयोजन की अनुमति देने के बाद से वे एक साझा वृक्ष संरचना का फायदा उठाने:

    विशिष्ट मामलों के लिए बेहतर कार्यान्वयन कि हो सकता है आप कुछ निश्चित परिस्थितियों में मदद कर रहे हैं। स्ट्रिंग्स की तुलना में संभवतः बेहतर है यदि आपके अधिकांश CPU समय को बड़े तारों को संयोजित करने पर खर्च किया जाता है। रस्सियों में दोहराए गए पात्रों और इसी तरह के बड़े ब्लॉक के लिए कुछ अच्छे अनुकूलन भी शामिल हैं। हालांकि वे सामान्य उद्देश्य के उपयोग के लिए विशेष रूप से कुशल नहीं हैं।

  • javolution.text.Text रस्सियों की अवधारणा में समान है, लेकिन अधिक हल्का है और रीयलटाइम उपयोग के लिए कस्टम मेमोरी आवंटन का समर्थन करता है। यदि आप बड़े तारों के साथ रीयलटाइम काम कर रहे हैं तो यह आपके लिए सबसे अच्छा फिट हो सकता है।
  • mikera.persistent.Text मेरा अपना अपरिवर्तनीय पाठ कार्यान्वयन है। बहुत तेजी से, javolution.text.Text के लिए अवधारणा में समान है लेकिन प्रीकंप्यूटेड हैशकोड है इसलिए यदि आप हैशपैप या हैशसेट कुंजी के रूप में बड़े तारों का उपयोग करना चाहते हैं तो बेहतर होगा। (मुझे किसी बिंदु पर इसकी आवश्यकता थी, इसलिए मैंने अपना खुद का लुढ़काया ...)
  • StringBuilder बहुत अच्छा है यदि आप एक परिवर्तनीय स्ट्रिंग चाहते हैं जिसमें आप बहुत छोटे बदलाव करने जा रहे हैं।
  • char [] array सरल और बहुत अच्छा है यदि आप चाहते हैं कि निश्चित लंबाई की एक परिवर्तनीय स्ट्रिंग है - यह JVM पर आप जितना अधिक कुशल हो सकते हैं। यदि आप कुछ कस्टम निम्न-स्तरीय स्ट्रिंग एल्गोरिदम लागू करने का प्रयास कर रहे हैं तो विचार करने योग्य मूल्य। अधिकांश अन्य स्ट्रिंग कार्यान्वयन इसे हुड के नीचे उपयोग करते हैं .....
+0

स्वीकार किए गए एक से बेहतर/अधिक पूर्ण उत्तर। – javadba

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