पहले जांचें कि क्या libmemcache जैसे मौजूदा समाधान आपकी आवश्यकता के अनुरूप हैं।
अगर नहीं ...
हैश मानचित्र आपकी आवश्यकता का निश्चित उत्तर प्रतीत होता है। यह कुंजियों के आधार पर ओ (1) लुकअप प्रदान करता है। अधिकांश एसटीएल पुस्तकालय इन दिनों किसी प्रकार का हैश प्रदान करते हैं। इसलिए अपने प्लेटफॉर्म द्वारा दिए गए एक का उपयोग करें।
एक बार जब वह भाग पूरा हो जाता है, तो आपको यह देखने के लिए समाधान का परीक्षण करना होगा कि क्या डिफ़ॉल्ट हैशिंग एल्गोरिथ्म आपकी आवश्यकताओं के लिए पर्याप्त अच्छा प्रदर्शन है।
यदि ऐसा नहीं है, तो आपको नेट पर पाए जाने वाले कुछ अच्छे फास्ट हैशिंग एल्गोरिदम का पता लगाना चाहिए
- अच्छा पुराना प्राइम नंबर गुणा अलग
- http://www.azillionmonkeys.com/qed/hash.html
- http://burtleburtle.net/bob/
- http://code.google.com/p/google-sparsehash/
यदि यह पर्याप्त अच्छा नहीं है, तो आप अपने द्वारा हैशिंग मॉड्यूल को रोल कर सकते हैं, जो आपके द्वारा परीक्षण किए गए STL कंटेनरों के साथ देखी गई समस्या को ठीक करता है, और ऊपर हैशिंग एल्गोरिदम में से एक। कहीं न कहीं परिणाम अवश्य देखें।
ओह, और यह दिलचस्प है कि आपके पास कई नक्शे हैं ... शायद आप अपनी कुंजी को 64 बिट के रूप में सरल बना सकते हैं क्योंकि उच्च बिट्स के साथ उपयोग किया जाता है जो यह बताता है कि यह किस मैप से संबंधित है और एक विशाल हैश में सभी प्रमुख मूल्य जोड़े जोड़ते हैं। मैंने हैश देखा है कि मूल प्राइम संख्या हैशिंग एल्गोरिथ्म पर पूरी तरह से अच्छी तरह से काम कर रहे सौ हजार या इतने प्रतीक हैं।
आप सैकड़ों मानचित्रों की तुलना में इस बात की जांच कर सकते हैं कि यह समाधान कैसे प्रदर्शित होता है .. मुझे लगता है कि यह मेमोरी प्रोफाइलिंग दृष्टिकोण से बेहतर हो सकता है ... कृपया इस अभ्यास को करने के लिए परिणाम कहीं पोस्ट करें
मेरा मानना है कि हैशिंग एल्गोरिथ्म से अधिक यह मेमोरी के निरंतर जोड़ने / हटाने (इसे टाला जा सकता है?) और सीपीयू कैश उपयोग प्रोफ़ाइल हो सकती है जो आपके आवेदन के प्रदर्शन के लिए अधिक महत्वपूर्ण हो सकती है।
सौभाग्य