2012-11-15 18 views
5

क्या एक सामान्य एल्गोरिदम या कार्यान्वयन है जिसमें मेमोरी पूल है जो class A और इसके व्युत्पन्न कक्षाओं दोनों पर काम करता है? ओ (1) में केवल एक विशिष्ट वर्ग ए के लिए काम करता है जो मेमोरी पूल बनाने के लिए काफी आसान है। उदाहरण के लिए: डेटा का एक बड़ा हिस्सा आवंटित करें, जो 10*sizeof(A) है और फिर प्रत्येक आवंटन की आवश्यकता होने पर आकार के 0à ब्लॉक sizeof(A) दें।कक्षा के लिए सी ++ मेमोरी पूल और इसकी व्युत्पन्न कक्षाएं

क्या ऐसा सरल कार्यान्वयन है जब हम ए के व्युत्पन्न वर्गों पर भी विचार कर सकते हैं, जिसका आकार बड़ा है? धन्यवाद

+2

आपको कंक्रीट मेमोरी पूल की आवश्यकता क्यों है? क्या आप सिर्फ पॉइंटर्स स्टोर नहीं कर सकते हैं और ढेर को आपके लिए काम नहीं कर सकते? – Jack

+0

यह ऑपरेटर के नए और ऑपरेटर को हटाने के लिए सिर्फ एक सैद्धांतिक प्रश्न है ... – lezebulon

+0

एकमात्र दृष्टिकोण जो मैं सोच सकता हूं वह बड़े प्रबंधन मुद्दों (छेद के लिए और स्मृति खंड के अंदर जो कुछ भी नहीं) बना रहा है, चरण आकार के रूप में उपयोग करना है पदानुक्रम के पेड़ में सबसे बड़ी कक्षा का आकार। कक्षाएं मूल रूप से अलग नहीं होने पर आप अधिक जगह बर्बाद नहीं करेंगे। – Jack

उत्तर

1

यह वास्तव में आपकी सरल परिभाषा पर निर्भर करता है। जैसे जैक ने कहा, आप व्युत्पन्न कक्षाओं के आकार का उपयोग सरणी के तत्व आकार के रूप में कर सकते हैं जो मेमोरी पूल है। यह निश्चित रूप से एक सरल कार्यान्वयन है।

यदि कुछ प्रकार सबसे बड़े आकार या छोटे आकार के आधे आकार के थे, तो आप एक दूसरे उदाहरण को एक स्लॉट पर कब्जा करने के लिए कार्यान्वयन को संशोधित कर सकते हैं जो एक संगत उदाहरण पर कब्जा कर लिया गया है। इसे लागू होने पर तिमाही आकार के प्रकार तक बढ़ाया जा सकता है।

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