मुझे Visual C++ 9 प्रोग्राम में निम्न समस्या है। एक विशाल वस्तु है जिसमें तार्किक रूप से कई उप-तत्व होते हैं। मैं या तो ऑब्जेक्ट या स्टोर पॉइंटर्स के अंदर उपरोक्त को अलग-अलग आवंटित उप-प्रोजेक्ट में स्टोर कर सकता हूं।मेमोरी आवंटन के मामले में क्या बेहतर है - सबबोजेक्ट या एक पॉइंटर को एक अलग ऑब्जेक्ट में?
यहां मुख्य बिंदु यह है कि प्रत्येक बाहरी वस्तु में प्रत्येक प्रकार के सबएजेक्ट का हमेशा एक उदाहरण होता है - यह हमेशा एक ही आकार का होता है और इसका जीवनकाल बाहरी वस्तु के समान होता है, इसलिए ऊपर दिए गए दो विकल्प हैं तार्किक रूप से समान - कार्यक्रम संरचना और तर्क बदल नहीं है।
यहाँ कैसे मेरे विचार को विकसित करता है: यदि मैं उन्हें traversing थोड़ा तेज हो जाएगा अंदर subobjects स्टोर
- , लेकिन है कि मैं क्या बारे में परवाह नहीं है सबसे - मैं इस कार्यक्रम प्रोफाइल और उस अड़चन नहीं है।
- यदि मैं बाहरी ऑब्जेक्ट के अंदर सबोबजेक्ट्स को संग्रहीत करता हूं तो अधिक मेमोरी पर कब्जा कर लेता है, इसलिए मैं बड़े ब्लॉक आवंटित करूंगा और यह अलग-अलग छोटे सबबजेक्ट्स को आवंटित करने की तुलना में खंड स्मृति को अधिक से अधिक कर सकता है - मुक्त स्मृति ब्लॉक कम पुन: प्रयोज्य हो सकता है (मैं हूं यकीन नहीं है, मुझे लगता है कि)।
- बेशक, कम आवंटन कार्यक्रम को तेजी से बनाएगा, लेकिन यह बहुत महत्वपूर्ण नहीं है - फिर मैंने प्रोग्राम का प्रोफाइल किया और आवंटन समय एक बाधा नहीं है।
- चूंकि प्रत्येक आवंटन बड़ी वस्तुओं के साथ एक मेमोरी ओवरहेड प्रेरित करता है, इसलिए वास्तव में मैं कम स्मृति का उपभोग करूंगा और यह मेरे कार्यक्रम के लिए अच्छा है जो बड़ी मात्रा में डेटा के साथ काम करता है।
इस बीच स्मृति विखंडन वास्तव में मुझे परेशान करता है - मुझे अपने कार्यक्रम को बहुत स्थिर और निरंतर महीनों से चलाने में सक्षम होना चाहिए।
मैं अपना निर्णय कैसे ले सकता हूं? क्या यह निर्णय लेने के लिए कोई तरीका है कि मुझे उपरोक्त विचारों के अनुसार छोटी वस्तु या बड़ी वस्तुओं का चयन करना चाहिए या नहीं?