2009-08-03 15 views
5

प्रश्न के अनुसार: Is C# code faster than Visual Basic.NET code? कहा गया था कि सी # और वीबी.नेट अंत में एक ही सीएलआर कोड उत्पन्न करता है।कोडलाइन से इनलाइन कोड की तुलना में तेज़ है?

लेकिन जब मैं कोडबेइंड और इनलाइन कोड का उपयोग कर रहा हूं, तो क्या अलग प्रदर्शन (उपयोग की जाने वाली भाषा को अनदेखा कर रहे हैं)?

उत्तर

6

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

वैसे भी, अगर इसे संकलन की आवश्यकता होती है, तो गति अंतर को महत्वहीन होना चाहिए क्योंकि एएसपी.नेट को किसी भी स्रोत फ़ाइल को संकलित करना होगा। एक बड़ी स्रोत फ़ाइल में कोड की कुछ पंक्तियों को जोड़ने के लिए अंतर नीचे आ जाएगा!

+0

पूरा टेम्पलेट संकलित नहीं है? – Dykam

+0

संपूर्ण एएसपीएक्स को सी #/वीबी स्रोत में संकलित किया गया है जिसमें इनलाइन कोड सीधे उचित स्थान पर शामिल है। सी # स्रोत आईएल असेंबली में संकलित किया जाएगा। –

1

हां, आईएसएच ... यदि आप रन-टाइम पर संकलित कर रहे हैं तो आप हमेशा किसी चीज़ की तुलना में अधिक महंगे होने जा रहे हैं, लेकिन उस संकलन को कैश किया जाएगा (यदि आप करेंगे) पहला अनुरोध इसलिए आपको तब से शून्य अंतर मिलेगा।

शायद कोई ऐसा व्यक्ति है जो किसी अन्य कारण को जानता है, लेकिन मेरे दिमाग में इनलाइन के लिए एकमात्र यथार्थवादी उद्देश्य पुनर्निर्माण के बिना गर्म सुधार करने की क्षमता है + पुन: नियोजन: छोटी या प्रारंभिक चरण देव परियोजनाओं में आप जो चीज कर सकते हैं। व्यक्तिगत रूप से मुझे इनलाइन भी थोड़ा सा लगता है ... सौंदर्यपूर्ण रूप से नापसंद।

+0

मुख्य कारण यह है कि इनलाइन सभी एएसपी.क्लासिक –

+0

के साथ पिछड़ा संगतता है, दो प्रकार के इनलाइन कोड- क्लासिक एएसपी-आईएसएच इनलाइन और फ़ाइल के शीर्ष पर एक बड़ा "स्क्रिप्ट" टैग है जो अभी भी मार्कअप से कोड को अलग करता है । –

+0

मुझे यकीन नहीं है कि एएसपी "क्लासिक" कभी भी एएसपी.नेट के लिए चिंता का विषय है ... – annakata

1

एएसपीएक्स पृष्ठों को किसी भी तरह से पार्स और संकलित किया जाना चाहिए क्योंकि एएसपी.Net उन्हें कक्षाओं में बदल देता है जो कोडबेहिंड से प्राप्त होता है (इसलिए पृष्ठ निर्देश में उत्तराधिकारी विशेषता) इसलिए किसी भी मामले में संकलन आवश्यक है। पहले रनों के लिए दोनों के बीच का अंतर नगण्य होने जा रहा है जब तक कि हम कोड की कई हज़ार लाइनों के बारे में बात नहीं कर रहे हों।

लेकिन मैं अन्ना से सहमत हूं: इनलाइन icky है।

0

मुझे यकीन नहीं है कि परिणामी असेंबली के उत्पादन में AllowOptimize विशेषता को चालू या बंद कर दिया गया है या नहीं। मुझे कोई दस्तावेज नहीं मिल रहा है जो इस तरह से इंगित करता है।

जैसा कि यह संभव है कि परिणामस्वरूप कोड जेआईटी द्वारा उसी तरह अनुकूलित नहीं किया गया है।

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

0

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

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