2012-05-27 9 views

उत्तर

10

नहीं, .NET में कोई परिदृश्य जहां मशीन कोड खुद के बारे में कर सकते हैं के बारे में बताया। कोड पीढ़ी पूरी तरह से समय-समय पर संकलक तक है। यह निश्चित रूप से मशीन के प्रोसेसर की क्षमताओं के आधार पर अपनी कोड पीढ़ी को अनुकूलित करने में सक्षम है। Ngen.exe को हमेशा लक्ष्य मशीन पर क्यों चलाना चाहिए, इसके बड़े कारणों में से एक। चाहे एसईटी 4 या एवीएक्स का लाभ लेने के लिए .NET 4.5 में झटके को ट्विक किया गया हो, एक खुला प्रश्न है, मैंने इसके बारे में कुछ नहीं सुना है। मुझे इसके बजाय संदेह है, माइक्रोसॉफ्ट झटके को ठीक करने के अलावा, एक बड़ी सौदा के साथ झुकाव नहीं करता है। बहुत अस्थिर और 4.5 एक साइड-बाय-साइड संस्करण नहीं है।

वीएस -11 हालांकि सी ++ के लिए एक अद्यतन कोड जेनरेटर है। यह स्वचालित रूप से वेक्टरिंग लूप करने में सक्षम है और ऐसा करने के लिए सिम/एवीएक्स निर्देशों का उपयोग करता है। यह blog post इसका उल्लेख करता है, एक संक्षिप्त वीडियो available here है।


अद्यतन: new x64 jitter, सीटीपी और कूटनाम RyuJIT में वर्तमान में, SIMD निर्देश के लिए कुछ मौलिक समर्थन शामिल है। एसएसई 2 प्रकार, ऑटो वेक्टरेशन प्रदान करते हैं। हालांकि यह माइक्रोसॉफ्ट.बीसी.आईएमडी पैकेज और वेक्टर <> वर्गों में काफी तंग हो गया है, 16-बाइट मेमोरी संरेखण आवश्यकता के लिए कोई सार्वभौमिक समाधान नहीं है जिसे सिम को तेजी से चलाने की आवश्यकता है।

अंतिम निर्माण सम्मेलन में घोषित .NET Native, फलस्वरूप आगे बढ़ने की संभावना अधिक है। यह अग्रिम-समय पर कोड उत्पन्न करने के लिए सी ++ कंपाइलर के बैक-एंड का उपयोग करता है, ऑटो-वेक्टरेशन और ऑटो-समांतरता के लिए इसके अंतर्निहित समर्थन से स्वचालित रूप से लाभान्वित होता है। अन्यथा स्पष्ट स्पष्टीकरण के बिना अभी तक स्मृति संरेखण समस्या को कैसे संबोधित किया गया था। इसकी अपनी समस्याएं हैं, प्रतिबिंब मुश्किल है, और वर्तमान में केवल पैकेज किए गए ऐप्स के लिए समर्थित है, जिस तरह की रनटाइम निर्भरता समय से पहले निर्धारित की जा सकती है। विंडोज स्टोर और फोन एप्स।


अद्यतन: यह .NET 4.6, System.Numerics.Vectors.dll असेंबली में भेज दिया गया। सावधान रहें कि ढांचे के साथ शामिल एक "सुरक्षित" है और एमएसडीएन दस्तावेज से मेल नहीं खाता है, Vector<T> गुम है। Nuget पैकेज (संस्करण 4.1.0) मेल खाता है।

+0

के नवीनतम संस्करण की आवश्यकता उत्तर –

+2

के लिए धन्यवाद आप निश्चित रूप से मशीन कोड लिख सकते हैं; बाइट्स को मेमोरी में लिखें और उसके बाद उस प्रतिनिधि को प्राप्त करने के लिए 'मार्शल.गेट डीलेगेट फोरफंक्शन पॉइंटर' पर कॉल करें जिसे आप कॉल कर सकते हैं। इसे कॉल करने की लागत का मतलब यह होगा कि शायद यह मोनो सिमड से तुलना नहीं करेगा, लेकिन यह निश्चित रूप से संभव है। –

+0

https://en.wikipedia.org/wiki/NX_bit –

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