2015-12-20 11 views
5

कहें कि मेरे पास एक कोड है जिसे अनुकूलित करने की आवश्यकता है लेकिन एक ही समय में डीबग करना आसान है। मैं इस प्रकार उपयोग किए जाने वाले प्रत्येक मूल्य के लिए एक स्ट्रिंग असाइन करता हूं। क्या स्ट्रिंग एक प्रमुख प्रदर्शन हिट उत्पन्न करती है या यह स्ट्रिंग से प्राप्त निरंतर संदर्भ में बदल जाती है। JIT/AOT संकलन के दौरान आंतरिक, इस प्रकार एक सरल निर्देश में बदल रहा है?क्या सीआईएल ldstr स्ट्रिंग के निरंतर संदर्भ के साथ बदल दिया गया है। जेआईटी/एओटी संकलन के दौरान अंत में?

उदाहरण:

आईएल में यह ldstr "gazilion lines" होगा।/AOT संकलन ldsflda string.InternCache.ID_0000647516166 और const string ID_0000647516166 = "gazilion lines"; की तरह कुछ string.InternCache में जोड़ा जाता है में बदल गया

यह JIT दौरान है?

हां, मैं सैद्धांतिक रूप से https://github.com/mono/mono देख सकता हूं लेकिन मुझे नहीं पता कि इसे कैसे ढूंढें।

हां, मैं सीआईएल, सी # मिश्रण कर रहा हूं और जो भी सीआईएल संकलित है, लेकिन आपको विचार मिलता है।

ldstrO(1) होने की गारंटी है?

हां यह सीएलआर का "कार्यान्वयन विवरण" है, लेकिन अगर यह इस तरह अनुकूलित किया गया तो यह समझ में आएगा।

+2

लंबा उत्तर: हाँ। एक एकल एमओवी रेग बन जाता है, रनटाइम पर इम निर्देश, एक डीबगर का उपयोग करना सुनिश्चित करें जो आपको डिस्सेप्लर दिखा सकता है ताकि आपको मेटाडेटा टोकन और जिटर कैसे काम करता है, इस बारे में परेशान न हो। –

उत्तर

1

लंबा उत्तर: हाँ। एक एकल एमओवी रेग बन जाता है, रनटाइम पर इम निर्देश, एक डीबगर का उपयोग करना सुनिश्चित करें जो आपको डिस्सेप्लर दिखा सकता है ताकि आप मेटाडेटा टोकन और जिटर कैसे काम करता है इस बारे में चिंतित न हों। - Hans Passant

+0

कृपया व्यक्तिगत प्रश्नों पर/विस्तारित करें। – user2864740

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