2009-11-30 8 views

उत्तर

7

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

3

अच्छा, कस्टम मेमोरी प्रबंधन और डिबगिंग। यह इसके बारे में है, और आप इससे भी बाहर निकल सकते हैं।

2

आप लाइब्रेरी कि कुछ वस्तुओं को प्रारंभ करने में कुछ अतिरिक्त चरण की आवश्यकता है विकसित हो सकता है, अधिक भार आपको लगता है कि कुछ भद्दा अतिरिक्त कॉल के बिना कि उपयोगकर्ता अन्यथा ऊपर टाइप करने के खत्म होगा करने के लिए अनुमति देता है।

2

आप SSE/SIMD साथ काम कर रहे हैं, तो आप आम तौर पर अपनी स्मृति की जरूरत है 4-शब्द-गठबंधन होने के लिए है, तो आप प्रासंगिक वर्गों के लिए new ओवरलोड हो सकता है memalign() उपयोग करने के लिए (जबकि डिफ़ॉल्ट new कुछ सादे के बराबर कर रही है malloc())।

4

ऐसे कई मामले हैं जब ऑपरेटर को ओवरराइड करना आवश्यक है। जैसा कि किसी ने कहा, यह मुख्य रूप से कस्टम मेमोरी प्रबंधन के लिए है।

मुख्य उदाहरण है कि मैं व्यक्तिगत रूप से एम्बेडेड प्रणाली के लिए था के साथ पेश किया है।

एक एम्बेडेड सिस्टम में, गतिशील स्मृति आवंटन आमतौर पर एक समस्या है। यहां तक ​​कि यदि आपके पास एक एम्बेडेड ऑपरेटिंग सिस्टम है जो इसका समर्थन करता है, तो आपके पास सभी प्रकार के मुद्दे हैं जिनसे आपको निपटना पड़ सकता है (उदाहरण के लिए, एम्बेडेड सिस्टम को अक्सर अपने पीसी समकक्षों की तुलना में अधिक निर्धारक होना चाहिए। इसके अलावा, आप सिस्टम पर काम कर रहे हैं यह एक समय में वर्षों तक होना चाहिए, जिस स्थिति में स्मृति विखंडन एक वास्तविक समस्या है)।

इस वजह से

, एम्बेडेड सिस्टम पूरी तरह से गतिशील स्मृति आवंटन की अनुमति नहीं देने के लिए करते हैं।

बेशक, सबसे सॉफ्टवेयर परियोजनाओं में आप जरूरत गतिशील स्मृति के कुछ रूप है, और उन मामलों में आप आमतौर पर अपने स्वयं के (यानी, कि सभी धागे से स्मृति के लिए पूछ सकते स्मृति पूल के कुछ प्रकार है, आदि को लागू)।

सी ++ परियोजनाओं के लिए सबसे आसान तरीके से इस हाथ से लुढ़का गतिशील स्मृति आवंटन का उपयोग करें, मैंने देखा है परियोजनाओं परियोजना के आवंटन पद्धति का उपयोग करने ऑपरेटर नई ओवरराइड बनाने के लिए।

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

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