मैं const
के व्यवहार को समझता हूं - योग्य डेटा प्रकार। मैं उत्सुक हूं, हालांकि, अगर const
के रूप में क्वालिफाइंग चर के ओवर-या ज़ोर से अधिक प्रदर्शन या हानि है। मैं विशेष रूप से घोषित चर के बारे में सोच रहा हूं और विशेष रूप से एक पृथक कोड ब्लॉक के भीतर उपयोग किया जाता हूं। उदाहरण के लिए, कुछ की तरह:क्या सी ++ चर घोषित करने से प्रदर्शन में मदद मिलती है या चोट पहुंचती है?
const qreal padding = CalculatePadding();
const QSizeF page_size = CalculatePagePreviewSize(padding);
const QRectF content_rect = CalculatePagePreviewContentRect(page_size);
const QList<QRectF> pages = renderer.BuildPrintPages(printer_, map_scene_);
const QFont page_number_font = CalculatePageNumberFont();
const QFontMetrics metrics(page_number_font);
मान लीजिए मैं केवल इन सभी से const
-qualified तरीकों की जरूरत है वहां उन सब const
घोषित करने में किसी भी प्रदर्शन लाभ है (और अधिक।)? या, इसके विपरीत, क्या यह वास्तव में प्रदर्शन को चोट पहुंचाता है?
मैं दोनों रन-टाइम प्रदर्शन के लिए उत्सुक हूँ (मैं अनुमान लगा रहा हूँ के रूप में विशेष रूप से const
एक संकलन समय जांच है यह कोई फर्क नहीं पड़ता - किसी की पुष्टि कर सकते?) और संकलन समय प्रदर्शन। मेरे पास इसके लिए एक महसूस करने के लिए सी ++ के साथ पर्याप्त अनुभव नहीं है, और मुझे आश्चर्य है कि मुझे const
के ऊपर या नीचे लागू होने के पक्ष में गलती करनी चाहिए जब अन्य सभी चीजें (रखरखाव, आदि) बराबर होती हैं।
ज्यादातर मामलों में, कोई रन-टाइम प्रदर्शन अंतर – Anycorn
डुप्ली? http://stackoverflow.com/questions/3435026/can-const-correctness-improve-performance – Anycorn
क्यूटी बहुत कॉपी-ऑन-राइट है इसलिए मुझे संदेह है कि यहां का वास्तविक प्रभाव हो सकता है। –