आंतरिक SortedDictionary<TKey, TValue>
TreeSet<KeyValuePair<TKey, TValue>>
का उपयोग करता है। पेड़ Node<T>
का उपयोग करता है और स्पष्ट रूप से यह नोड्स के बीच संदर्भों का उपयोग करता है, इसलिए प्रत्येक कुंजी और मूल्य के अतिरिक्त आपके पास बाएं और दाएं नोड्स के साथ-साथ कुछ अतिरिक्त गुण भी होंगे। Node<T>
एक वर्ग है इसलिए प्रत्येक उदाहरण में संदर्भ प्रकार का पारंपरिक ओवरहेड होता है। इसके अलावा, प्रत्येक नोड एक बूलियन भी संग्रहीत करता है जिसे IsRed
कहा जाता है।
WinDbg/SOS के अनुसार 48 बाइट्स में 64 बिट्स पर एक एकल नोड का आकार, इसलिए उनमें से 10000 कम से कम 480000 बाइट्स ले लेंगे।
0:000> !do 0000000002a51d90
Name: System.Collections.Generic.SortedSet`1+Node[[System.Collections.Generic.KeyValuePair`2[[System.Int32, mscorlib],[System.Int32, mscorlib]], mscorlib]]
MethodTable: 000007ff000282c8
EEClass: 000007ff00133b18
Size: 48(0x30) bytes <== Size of a single node
File: C:\windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
Fields:
MT Field Offset Type VT Attr Value Name
000007feeddfd6e8 4000624 18 System.Boolean 1 instance 0 IsRed
000007feee7fd3b8 4000625 20 ...Int32, mscorlib]] 1 instance 0000000002a51db0 Item
000007ff000282c8 4000626 8 ...lib]], mscorlib]] 0 instance 0000000002a39d90 Left
000007ff000282c8 4000627 10 ...lib]], mscorlib]] 0 instance 0000000002a69d90 Right
स्रोत
2011-05-11 08:59:37
.NET रनटाइम में आपका स्वागत है। –
क्योंकि यह एक पेड़ है। सॉर्टेडलिस्ट और एक सादा सूची भी होती है जो सॉर्ट किया जाता है (आइटम को अपनी उचित जगह में सम्मिलित करना सुनिश्चित करें) – harold