कुछ ब्लॉग और साइटों संकेत के बारे में बात कर रहे थे लाभकारी कारणों में से एक था, क्योंकि "निष्पादन की गति" संकेत के बिना से संकेत के साथ एक कार्यक्रम में बेहतर होगा रहे हैं।प्वाइंटर और निष्पादन की गति
एक ही स्थान अपसंदर्भन दो की आवश्यकता है (या अधिक) स्मृति (अविवेक की संख्या के आधार पर) तक पहुँचता है: बात मैं बाहर काम कर सकते हैं। जो निष्पादन समय को बढ़ाएगा, इसकी तुलना में सीधे इसका उपयोग किया गया था।
एक संरचना के लिए एक बड़े डेटाटाइप के लिए एक सूचक को पास करना फायदेमंद हो सकता है, क्योंकि केवल संरचना/संघ का पता कॉपी हो रहा है और यह मूल्य से पारित नहीं हो रहा है। इसलिए यह इस मामले में तेजी से होना चाहिए।
उदाहरण के लिए सिर्फ ताकत के रूप में किसी भी आवश्यकता के बिना संकेत शुरू करने से:
int a, b, *p, *q, c, *d;
p = &a;
q = &b;
d = &c
// get values in a, b
*d = *p + *q; // why the heck this would be faster
c = a + b; // than this code?
मैं gcc -S -masm=intel file.c
का उपयोग कर सूचक संस्करण कोडांतरक उत्पादन जाँच लोड हो रहा है स्मृति का एक बहुत है और प्रत्यक्ष से dereferences के लिए भंडारण तरीका।
मैं कुछ याद आ रही है?
नोट: सवाल सिर्फ कोड से संबंधित नहीं है। कोड सिर्फ एक उदाहरण है। संकलक अनुकूलन पर विचार नहीं कर रहा है।
"लाभकारी" या "बेहतर" केवल एक चीज की तुलना किसी अन्य चीज़ की तुलना में किया जा सकता है। तो सवाल यह है कि लेखक ने एक्जिक्यूटिन की गति की तुलना की है। गुजरने वाले structs बनाम के बारे में।संरचना पॉइंटर्स, पॉइंटर्स तेज़ होते हैं - यदि संबंधित संरचना का भारी उपयोग नहीं किया जाता है। अन्य चीजों के बारे में, यह काफी निर्भर करता है। – glglgl
सबसे अच्छे मामले में दोनों संस्करण समकक्ष हैं क्योंकि संकलित प्रकार पहले से ही अव्यवस्थित हो सकते हैं यदि शामिल प्रकार ज्ञात हैं। '-O2' के साथ अपना उदाहरण संकलित करने का प्रयास करें और देखें कि पॉइंटर्स को कैसे अनुकूलित किया गया है। – matthias
कंपाइलर अनुकूलन पर विचार नहीं करते, सवाल का मुख्य बिंदु यह है कि यदि पॉइंटर्स का उपयोग करना हमेशा कुछ "जादुई" कारणों के लिए निष्पादन गति को बढ़ाता है? या पॉइंटर्स को सामान्य चर के रूप में सोचा जाना चाहिए जो एक पूर्णांक धारण करते हैं जिसे हम स्मृति पते के रूप में उपयोग करना चाहते हैं, और कुछ वाक्यविन्यास द्वारा हम संकलक पहचानकर्ताओं को बताते हैं कि हम ऐसे मान रखने के लिए उपयोग करेंगे। – phoxis