मैं अभी एक प्रोग्राम का परीक्षण कर रहा हूं जिसे मैं काम कर रहा हूं, और मुझे लगता है कि यह 3μs तेजी से निष्पादित कर रहा है (एक सांख्यिकीय रूप से महत्वपूर्ण परिवर्तन) जब मैं इसे संकलित करता हूं -जी। इससे मुझे कोई समझ नहीं आती - मैंने सोचा कि -जी ध्वज प्रोग्राम निष्पादन को प्रभावित नहीं करना चाहिए था, और यह भी कि अगर ऐसा होता है तो यह धीमा, तेज नहीं होगा।क्या gcc -g डीबगिंग ध्वज प्रोग्राम निष्पादन को प्रभावित करता है?
क्या कोई मुझे बता सकता है कि यह क्यों हो रहा है? और क्या यह प्रोग्राम निष्पादन प्रवाह को बदलता है? मैं -O के साथ संकलित नहीं कर रहा हूं क्योंकि मुझे इसे बिल्कुल लिखित रूप में निष्पादित करने की आवश्यकता है, लेकिन अगर -जी किसी भी तरह से निर्देश आदेश को बदलने के साथ इसे तेजी से चला सकता है तो मुझे स्पष्ट रूप से इसका उपयोग करना चाहिए।
इसलिए मुझे यह जानने की ज़रूरत है कि कार्यक्रम में -जी ध्वज क्या बदलता है।
संपादित करें: जितना अधिक परीक्षण मैं चलाता हूं, टी-वैल्यू जितना बड़ा हो जाता है (= अधिक सांख्यिकीय रूप से महत्वपूर्ण अंतर बन जाता है)। यह निश्चित रूप से माप त्रुटि नहीं है - कुछ चल रहा है।
इसके अलावा: अगर -जी हमेशा प्रोग्राम चलाता है, तो यह डिफ़ॉल्ट रूप से चालू होगा, तो मेरा प्रोग्राम विशेष क्या हो सकता है? – Benubird
क्या 3us वास्तव में एक सांख्यिकीय रूप से महत्वपूर्ण परिवर्तन है? यह उस दर के करीब है जिस पर सिस्टम घड़ी सटीक है, और अगर मैं यादृच्छिक शोर के अलावा कुछ और आश्चर्यचकित हूं तो मुझे आश्चर्य होगा। – templatetypedef
यह है। प्रत्येक संस्करण के 1000 से अधिक परीक्षण, टी आंकड़े 1.8 के साथ 1.8 है। यह लगभग 9 5% महत्वपूर्ण है। – Benubird