2012-09-03 2 views
6

"Suppress JIT optimization on module load" डिबगिंग विकल्प का प्रभाव क्या है?"मॉड्यूल लोड पर डीआईपी अनुकूलन को दबाएं" डीबगिंग विकल्प का क्या प्रभाव है?

मुझे हाल ही में एक COM घटक का उपयोग करने वाले ऐप को सफलतापूर्वक डीबग करने में सक्षम होने के लिए इसे बंद करना पड़ा है।

इसे बंद करके मुझे क्या जोखिम है?

+0

संभावित डुप्लिकेट [मॉड्यूल लोड पर केवल JIT ऑप्टिमाइज़ेशन को दबाएं (केवल प्रबंधित)] (http://stackoverflow.com/questions/9564739/suppress-jit-optimization-on- मॉड्यूल-load-managed- केवल) – nawfal

उत्तर

11

जेआईटी अनुकूलन को दबाने का मतलब है कि आप गैर-अनुकूलित कोड डीबग कर रहे हैं। कोड थोड़ा धीमा चलता है क्योंकि इसे अनुकूलित नहीं किया जाता है, लेकिन आपका डिबगिंग अनुभव बहुत अधिक है। अनुकूलित कोड डिबग करना कठिन है और केवल तभी अनुशंसा की जाती है जब आपको अनुकूलित कोड में होने वाली एक बग का सामना करना पड़े लेकिन गैर-अनुकूलित संस्करण में पुन: उत्पन्न नहीं किया जा सकता है।

यदि आप मॉड्यूल लोड विकल्प पर दबाने वाले जेआईटी ऑप्टिमाइज़ेशन को साफ़ करते हैं, तो आप अनुकूलित जेआईटी कोड डीबग कर सकते हैं, लेकिन डीबग करने की आपकी क्षमता सीमित हो सकती है क्योंकि अनुकूलित कोड स्रोत कोड से मेल नहीं खाता है। नतीजतन, लोकल और ऑटोस विंडो जैसी डीबगर विंडो उतनी ही जानकारी प्रदर्शित नहीं कर सकती हैं जितनी कि अगर आप गैर-अनुकूलित कोड डिबग कर रहे हों।

+0

यह संपूर्ण पाठ संदर्भ है: http://msdn.microsoft.com/en-us/library/ms241594.aspx –

2

इसका मतलब है कि जेआईटी कोड डीबगिंग के लिए अनुकूलित नहीं किया जाएगा। उदाहरण के लिए:

private int Add(int x, int y) 
    { 
     int notUsed = 2; 
     return x + y; 
    } 

इस कोड notUsed चर में अनुकूलन द्वारा JIT कोड इधर-उधर बाहर रखा जाएगा इस कोड के रूप में की आवश्यकता नहीं है। यदि आप अनुकूलित कोड डिबग करना शुरू करते हैं तो यह आपके द्वारा लिखे गए कोड की तरह नहीं दिख सकता है (लेकिन वही करेगा)। अनुकूलन का एक और उदाहरण इनलाइन तरीकों का तरीका है।

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