आह ... फिर से खोलें। ठीक। यहाँ सौदा है।
आईएलडीएएसएम एक शुरुआत है, लेकिन अंत नहीं है। कुंजी यह है कि जेआईटी असेंबली कोड के लिए क्या उत्पन्न करेगा?
यहां आप क्या करना चाहते हैं।
आप जो देखने की कोशिश कर रहे हैं उसके कुछ नमूने लें। जाहिर है कि यदि आप चाहें तो आप दीवार घड़ी का समय निकाल सकते हैं - लेकिन मुझे लगता है कि आप उससे अधिक जानना चाहते हैं।
यहां स्पष्ट नहीं है। सी # कंपाइलर कुछ एमएसआईएल अनुक्रम उत्पन्न करता है जो कई स्थितियों में गैर-इष्टतम हैं। जेआईटी ने इन भाषाओं और अन्य भाषाओं से quirks से निपटने के लिए ट्यून किया। समस्या: केवल 'quirks' किसी ने देखा है देखा गया है।
आप वास्तव में एक नमूना बनाना चाहते हैं जिसमें आपके कार्यान्वयन की कोशिश की जा रही है, मुख्य (या कहीं भी), नींद() एस, या कुछ जहां आप डीबगर संलग्न कर सकते हैं, फिर फिर से दिनचर्या चलाएं।
आप डीबगर के तहत कोड शुरू नहीं करना चाहते हैं या जेआईटी गैर-अनुकूलित कोड उत्पन्न करेगा - और ऐसा लगता है जैसे आप जानना चाहते हैं कि यह वास्तविक वातावरण में कैसे व्यवहार करेगा। जेआईटी डीबग जानकारी को अधिकतम करने और वर्तमान स्रोत स्थान को 'कूदने' से कम करने के लिए करता है। डीबगर के तहत कभी भी एक perf मूल्यांकन शुरू नहीं करें।
ठीक है। तो एक बार कोड एक बार चलाया जाता है (यानी: जेआईटी ने इसके लिए कोड उत्पन्न किया है), फिर नींद के दौरान डीबगर संलग्न करें (या जो भी हो)। फिर दो दिनचर्या के लिए उत्पन्न x86/x64 देखें।
मेरा आंत मुझे बताता है कि यदि आप वर्णित ++ i/i ++ का उपयोग कर रहे हैं - यानी: स्टैंड स्टैंड अकेले अभिव्यक्ति में जहां रावल्यू परिणाम का पुन: उपयोग नहीं किया जाता है - इसमें कोई अंतर नहीं होगा। लेकिन यह पता लगाने और सभी साफ सामान देखने के लिए मजेदार नहीं होगा! :)
यह बंद नहीं होना चाहिए था। लेकिन वैसे भी, यदि आप इसे संकलित करते हैं और MSIL को देखने के लिए ildasm.exe का उपयोग करते हैं, तो आप देखेंगे कि दो उदाहरण समान एमएसआईएल के परिणामस्वरूप हैं। –
फिर से खोलने के लिए वोट दिया गया। जॉन शीहान, tvanfosson, ctacke, मार्क ग्रेवल .. यदि आप बंद करने के लिए मतदान कर रहे हैं .. प्रश्न में डुप्लिकेट संपादित करें और प्रदान करें! मुझे डुप्ली – mmcdole
पर कोई लिंक नहीं दिख रहा है डुप्लिकेट के साथ एक जवाब था, मुझे नहीं पता कि यह कहां गया था। –