5

पुस्तक में "आयरनपीथन इन एक्शन," लेखक में कहा गया है कि सीपीथॉन के विपरीत आयरनपीथन, जेआईटी और ढांचे में दोनों कुछ अनुकूलन से लाभ प्राप्त करता है, कि सीपीथन इसका लाभ नहीं उठा सकता है। नतीजतन, आयरनपीथन संभावित रूप से मल्टीथ्रेडिंग परिदृश्यों के लिए, सीपीथॉन की तुलना में तेज़ है।क्या आयरनशेम व्याख्या या संकलित है? क्या यह .NET Framework अनुकूलन से लाभान्वित है?

क्या IronScheme ऐसे अनुकूलन से लाभान्वित है? क्या यह एक दुभाषिया है (एक कंपाइलर नहीं), और क्या यह एक दुभाषिया है क्योंकि यह लिस्प की प्रकृति है, जिसे लिस्प-जैसी लचीलापन प्रदान करने के लिए इसका अर्थ होना चाहिए? यदि यह एक दुभाषिया है, तो क्या यह अभी भी जिटर में अनुकूलन से लाभ उठा सकता है?

उत्तर

3

आयरनपीथन (अच्छी तरह से डीएलआर के साथ प्रारंभिक एक जिसे मैं आयरनशेम पर आधारित करता हूं) की तरह, आयरनशेम को आईएल स्तर तक सभी तरह से संकलित किया जाता है।

इसके अलावा, आयरनशेम में कोई व्याख्या नहीं किया गया है (जब तक कि आप रनटाइम प्रतीक लुकअप को कॉल न करें), क्योंकि मैंने डीएलआर की मेरी 'शाखा' से बहुत कुछ निकाल दिया है, इसका उपयोग नहीं किया जा रहा है और इसे कम करने के कारण कोड पदचिह्न (मैंने अनुमान लगाया है कि मैंने केवल डीएलआर का लगभग 25% उपयोग किया था, जहां बाकी पाइथन-केंद्रित था)।

यह देखने के लिए कि आईएल क्या उत्पन्न होता है, आप प्रतिबिंबित .NET में ironscheme.boot.dll असेंबली देख सकते हैं (आईएल मोड का उपयोग करके, क्योंकि सी # को अजीब तरह से पुनर्गठित किया जाता है और कुछ मामलों में केवल सादा गलत होता है)। यह पूरी असेंबली आयरनशेम द्वारा संकलित की जाती है। रनटाइम जेनरेट कोड देखने के लिए बहुत अधिक ट्रिकियर है।

जैसा कि कहा गया है, इसमें जेआईटी के सभी लाभ हैं, और डीएलआर पर किए गए अनुकूलन के साथ और अधिक योजना केंद्रित होने के साथ, यह आमतौर पर आयरनपीथन से तेज प्रदर्शन करता है जब मैंने पिछली बार परीक्षण किया (एक अच्छा 18 महीने पहले कम से कम, मुझे एहसास है कि तब से आयरनपीथन में काफी सुधार हुए हैं, लेकिन आयरनशेम कुछ कारकों को तेजी से चला रहा था, यहां तक ​​कि योजना का उपयोग करके 'पाइथन जैसे गेंद को भी' महसूस किया गया था)।

इसके अलावा, मैंने आयरनशेम के लिए नींव के रूप में अधिकतर .NET ढांचे का उपयोग करने और इंटरऑपरेबिलिटी को आसान बनाने का प्रयास किया है। vectors, byte-vectors, binary-ports और hash-tables जैसी चीजें सामान्य .NET कक्षाओं पर आधारित हैं जिन्हें हम सभी जानते हैं और उपयोग करते हैं; object[], byte[], Stream और Hashtable क्रमशः कुछ नाम देने के लिए।

+0

धन्यवाद, लेप्पी। –

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