2011-01-19 5 views
8

एरिक लिपर्ट के ब्लॉग The truth about value types से यह स्पष्ट है कि रजिस्टरों की संख्या कोड प्रदर्शन पर एक बड़ा प्रभाव डाल सकती है। कोड के मानदंड क्या हैं जो x64 सिस्टम में उच्च रजिस्टर गिनती से अधिक लाभ उठाते हैं? क्या कोई अच्छा उदाहरण हैं?कौन सा परिदृश्य सी # कोड के लिए x64 सिस्टम में उच्च रजिस्टर गिनती के प्रदर्शन प्रभाव को अधिकतम करता है?

यह मुझे स्पष्ट है कि पंजीकरण संख्या x64 प्लेटफ़ॉर्म का एकमात्र और यहां तक ​​कि सबसे महत्वपूर्ण पहलू नहीं है, लेकिन यदि ऐसे मानदंड हैं, तो क्या प्लेटफॉर्म जिसे हम अपना कोड चलाने की योजना बना रहे हैं, पर असर पड़ना चाहिए हम कैसे अपना कोड लिखते हैं?

+0

मेरे लिए, आपको हमेशा प्रदर्शन पहलू पर विचार करना चाहिए। मुझे यकीन नहीं है कि हम पंजीकरण के साथ आसानी से प्रदर्शन को अधिकतम कर सकते हैं क्योंकि हम .NET वर्चुअल मशीन का उपयोग करते हैं। मुझे लगता है कि यह वर्चुअल मशीन के कार्यान्वयन पर निर्भर करता है। – ykatchou

+0

यह एक अच्छा सवाल है, मेरा मानना ​​है कि अगर हम किसी भी सीसीपीयू के लिए निर्माण करते हैं तो आईएल कोड निष्पादन समय पर संकलित किया जाएगा जो निष्पादन मंच पर निर्भर करेगा। –

+0

यहां तक ​​कि आधुनिक प्रोसेसर के पास प्रति कोर लगभग 16 रजिस्ट्रार होते हैं, जो आजकल अनुप्रयोगों द्वारा आवंटित चर की संख्या से इसकी तुलना करते समय वास्तव में कम आंकड़ा है। इसलिए, मुझे लगता है कि आप x64 सिस्टम में उपलब्ध कुछ और रजिस्टरों का लाभ उठाने के लिए आपको सी # कोड "अनुकूलित" करने में सक्षम नहीं होंगे। इसके अलावा, भले ही आपको कोडिंग के दौरान प्रदर्शन के लिए नजर रखना चाहिए, आपको कोड की गुणवत्ता (पठनीयता, रखरखाव, इत्यादि) के बारे में और अधिक ध्यान रखना चाहिए क्योंकि इससे विकास लागत बहुत कम हो सकती है, और केवल आपके आवेदन के महत्वपूर्ण क्षेत्रों में प्रदर्शन के लिए लक्षित होना चाहिए । –

उत्तर

1

आपके प्रश्न का संक्षिप्त उत्तर निश्चित रूप से है - नहीं।

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

सामान्य रूप से लाभ के लिए कोई कोडिंग मानदंड नहीं हैं लेकिन स्ट्रिंग बिल्डर का उपयोग स्ट्रिंग बिल्डर का उपयोग करने के बजाय स्ट्रिंग बिल्डर का उपयोग करना है जैसे स्ट्रिंग_Result = string_X + string_Y + string_Z एक पुनरावृत्ति में।
लेकिन यह सीएलआई या सी # के बावजूद सही कोडिंग या अनुकूलित कोडिंग से अधिक संबंधित है।

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