आपने अपने कई प्रश्नों में संक्षेप में स्पर्श किया है कि आप अपने प्रश्न में मेमोरी मैनेजर का उपयोग क्यों करेंगे।
क्या स्मृति प्रबंधक का वास्तविक उद्देश्य मॉलोक कॉल की संख्या को कम करने या मुख्य रूप से स्मृति विश्लेषण, भ्रष्टाचार जांच या अन्य अनुप्रयोग केंद्रित उद्देश्यों के उद्देश्य से है?
यह एक बड़ा सवाल है। किसी भी एप्लिकेशन में एक मेमोरी मैनेजर जेनेरिक (मॉलोक की तरह) हो सकता है या यह अधिक विशिष्ट हो सकता है। मेमोरी मैनेजर जितना अधिक विशिष्ट हो जाता है, यह उस विशिष्ट कार्य पर अधिक कुशल होने की संभावना है जो इसे पूरा करना है।
इस बेहद सरलीकृत उदाहरण लें: "। कस्टम स्मृति allocator"
#define MAX_OBJECTS 1000
Foo globalObjects[MAX_OBJECTS];
int main(int argc, char ** argv)
{
void * mallocObjects[MAX_OBJECTS] = {0};
void * customObjects[MAX_OBJECTS] = {0};
for(int i = 0; i < 1000; ++i)
{
mallocObjects[i] = malloc(sizeof(Foo));
customObjects[i] = &globalObjects[i];
}
}
ऊपर है कि इस वैश्विक वस्तु सूची हमारे है मैं नाटक कर रहा हूँ में यह सिर्फ इतना है कि मैं जो समझा रहा हूं उसे सरल बनाना।
जब आप मॉलोक के साथ आवंटित करते हैं तो कोई गारंटी नहीं है कि यह पिछले आवंटन के ठीक बाद है। मॉलोक एक सामान्य उद्देश्य आवंटक है और उस पर एक अच्छा काम करता है लेकिन यह आवश्यक नहीं है कि प्रत्येक एप्लिकेशन के लिए सबसे प्रभावी विकल्प बनें।
एक कस्टम आवंटक के साथ आप 1000 कस्टम ऑब्जेक्ट्स के लिए कमरे आवंटित करने में सक्षम हो सकते हैं और चूंकि वे एक निश्चित आकार हैं जो आपको विखंडन को रोकने और कुशलतापूर्वक उस ब्लॉक को आवंटित करने के लिए आवश्यक स्मृति की सटीक मात्रा लौटाते हैं।
मेमोरी अबास्ट्रक्शन और कस्टम मेमोरी आवंटकों के बीच अंतर भी है। एसटीएल आवंटक तर्कसंगत रूप से एक अमूर्त मॉडल हैं और कस्टम मेमोरी आवंटक नहीं हैं।
कस्टम allocators पर कुछ अधिक जानकारी के लिए इस लिंक पर एक नज़र डालें और क्यों वे उपयोगी होते हैं: gamedev.net link
स्रोत
2015-10-01 16:20:36
खुद से पूछें कि हमारे पास सड़कों पर यातायात रोशनी क्यों है, और उनके बिना ड्राइविंग कैसा होगा ... फिर "मेमोरी मैनेजर" के साथ "ट्रैफिक लाइट" को प्रतिस्थापित करें। –
क्या आपका मतलब है कि कुछ परियोजनाएं गैर-डिफ़ॉल्ट मेमोरी मैनेजर (उदा। [टीसीएमएलओसी] (http://goog-perftools.sourceforge.net/doc/tcmalloc) के खिलाफ क्यों लिंक करती हैं।एचटीएमएल)), या मानक परियोजनाओं के अलावा कुछ परियोजनाओं में अतिरिक्त मेमोरी-प्रबंधन बुनियादी ढांचे * क्यों शामिल हैं? –
@MarcB [यह] (http://www.spiegel.de/international/spiegel/controlled-chaos-european-cities-do-away-with-traffic-signs-a-448747.html) क्या होता है। काफी हद तक एक ही चीज स्मृति प्रबंधकों पर लागू होती है। – nwp