मार्शलिंग परत के अलावा, जो आपके लिए पैरामीटर बदलने और कॉलिंग सम्मेलनों को समझने के लिए ज़िम्मेदार है, रनटाइम को आंतरिक स्थिति को स्थिर रखने के लिए कुछ और चीजें करने की आवश्यकता है।
सुरक्षा संदर्भ को जांचने की आवश्यकता है, यह सुनिश्चित करने के लिए कि कॉलिंग कोड को देशी तरीकों तक पहुंचने की अनुमति है। वर्तमान प्रबंधित स्टैक फ्रेम को सहेजने की आवश्यकता है, ताकि रनटाइम डीबगिंग और अपवाद हैंडलिंग जैसी चीजों के लिए स्टैक वॉक कर सके (मूल कोड का उल्लेख न करें जो प्रबंधित कॉलबैक में कॉल करता है)। राज्य के आंतरिक बिट्स को यह इंगित करने के लिए सेट करने की आवश्यकता है कि हम वर्तमान में देशी कोड चला रहे हैं।
इसके अतिरिक्त, रजिस्ट्रार को ट्रैक करने की आवश्यकता हो सकती है, इस पर निर्भर करता है कि किस ट्रैक को ट्रैक किया जाना चाहिए और कॉलिंग सम्मेलन द्वारा पुनर्स्थापित करने की गारंटी दी जाती है। जीसी जड़ें जो रजिस्टरों (स्थानीय लोगों) में हैं, उन्हें किसी भी तरह से चिह्नित करने की आवश्यकता हो सकती है ताकि उन्हें मूल विधि के दौरान कचरा नहीं मिला हो।
तो मुख्य रूप से यह स्टैक हैंडलिंग और प्रकार की मार्शलिंग है, जिसमें कुछ सुरक्षा सामग्री फेंक दी गई हैं। हालांकि यह बड़ी मात्रा में सामान नहीं है, हालांकि छोटे देशी तरीकों को कॉल करने के खिलाफ एक महत्वपूर्ण बाधा का प्रतिनिधित्व करता है। उदाहरण के लिए, एक अनुकूलित गणित पुस्तकालय में पी/इनवॉक करने का प्रयास शायद ही कभी प्रदर्शन जीत में होता है, क्योंकि ओवरहेड किसी भी संभावित लाभ को अस्वीकार करने के लिए पर्याप्त है।कुछ प्रदर्शन प्रोफाइलिंग परिणामों पर चर्चा की जाती है here।
हो सकता है कि कॉल स्टैक में है कि रेखा सिर्फ जानकारीपूर्ण है, तुम्हें पता है जब आप –
@DavidHeffernan तरीके से संक्रमित जाने के लिए: यहाँ एक उदाहरण है ओह ....... मुझे लगता है कि भी काम करता है लगता है .. लेकिन मुझे लगता है कि कुछ और भी हो रहा है (हालांकि मुझे गलत सिद्ध होना अच्छा लगेगा!)। – Mehrdad
@ डेविडहेफरन: यह दिलचस्प है कि यह 'kernel32.dll' से 'mscoree.dll' तक जाने पर एक ही बात नहीं कहता है, हालांकि ... इससे मुझे संदेह होता है कि वास्तव में कुछ चल रहा है। – Mehrdad