मेरे अनुभव में, पुस्तकालय मॉड्यूल के लिए डेटा संरचनाएं बड़े होने पर प्रदर्शन या स्मृति दबाव में गिरावट नहीं आती हैं।
एक निर्देश के लिए, यह गतिशील हैश तालिका का उपयोग आंतरिक डेटा संरचना के रूप में करता है और कार्य केवल बाल्टी पर ही किया जाता है जहां संशोधन किया जाता है।
मैं भी gb_trees
मॉड्यूल जहाँ मैं टिप्पणी पाया में देखा:
व्यवहार logaritmic है (के रूप में यह होना चाहिए)।
और gb_trees
आम तौर पर बहुत तेज़ होते हैं, इसलिए मुझे पूरा यकीन है कि बहुत अधिक प्रतिलिपि चल रही नहीं है।
आम तौर पर, यदि आप इरलांग जैसी भाषा में डेटा संरचनाओं को लागू करते हैं, तो आप समस्याओं की प्रतिलिपि बनाने का ख्याल रखते हैं, इसलिए सामान्य लाइब्रेरी फ़ंक्शंस के लिए इसके बारे में चिंता करने की आवश्यकता नहीं है।
मैं लगातार डेटा संरचनाओं के बारे में लेख पुन: पढ़ने: इस लेख के अर्थ में, Erlang के डेटा संरचनाओं पूरी तरह से लगातार और भी confluently लगातार कर रहे हैं।
स्रोत
2010-11-05 10:39:36
ठीक है, हम यहां पॉइंटर्स और मानों पर चर्चा नहीं करेंगे, अंतर मेरे लिए स्पष्ट है, बिंदु यह है कि बड़े इन-मेमोरी की-वैल्यू स्टोर्स के साथ कैसे काम करना है जिसमें दृढ़ता है (इसलिए कोई भी नहीं)। मैंने उल्लेख किया है कि कुछ मूल्यों के संशोधन के दौरान क्लोजर में रूट से उस मान तक केवल पथ की प्रतिलिपि बनाई जाती है (3-4 नोड्स) और हमारे पास दो पेड़ हैं: नया और पुराना। हम erlang में यह कैसे कर सकते हैं? क्या बॉक्स से कुछ संरचना इस तरह के व्यवहार को लागू करती है? – adolgarev
'ए = कुछ ट्री, बी = परिवर्तन (ए)।'अब आपके पास ट्री बी और ट्री ए है, जहां' बी 'नया है और' ए 'पुराना है ..' {ए, बी} 'का उपयोग करके दोनों पेड़ों को एक ही टुपल में रखा जाता है। क्या आप यही जानना चाहते हैं? –
एनओपी, मुझे ए = कुछ ट्री, बी = चेंज (ए) की आवश्यकता है, और ए और बी कुछ आम टुकड़े साझा करते हैं, http://en.wikipedia.org/wiki/Purely_functional#Trees – adolgarev