कंपाइलर कीड़े के अलावा, यह शायद एक मिथक है। यह -Ofast
विकल्प जोखिम भरा है, क्योंकि वह यह भी गारंटी नहीं देता है कि मानक-अनुपालन कार्यक्रम तोड़ नहीं जाएंगे।
बस एक व्यावहारिक उदाहरण के रूप में, यहाँ पुस्तकालयों में से एक त्वरित खोज, कोई विशेष क्रम में, एंड्रॉयड ओपन सोर्स प्रोजेक्ट (AOSP) — अंदर जो शायद एक "वास्तविक उत्पादन codebase" — कि -O3
का उपयोग के लिए पर्याप्त है:
cblas, अधिभारित, libmpeg2, libavc, lvvm: MCJIT, jpeg, zlib, lz4, regex-re2, libpng, libutf, (और अधिक)
अन्य कोड AOSP में बस के लिए अनुकूलित करने की कोशिश करता है आकार (अभी भी, एंड्रॉइड), इसलिए यह स्पष्ट रूप सेका उपयोग करता है। लेकिन उस कोड में से अधिकांश अभी भी इन सभी पुस्तकालयों का उपयोग करता है — जिसके लिए प्रदर्शन आकार से बड़ा विचार है। ध्यान दें, कि सहीता शायद openssh
की पसंद के लिए एक बड़ी समस्या है, जिसे ऊपर वर्णित किया गया है।
ध्यान रखें कि प्रोग्रामर हमेशा अनुकूलित कोड के अधिक संदिग्ध होते हैं। जब आप मानकों-अनुरूप कोड लिखने पर सेट नहीं होते हैं, और अनिर्धारित & अनिश्चित व्यवहार के क्षेत्र में पहुंचे हैं, तो संकलक को अलग-अलग कॉन्फ़िगरेशन (जैसे अनुकूलन स्तर) के बीच अलग-अलग परिणामों को उत्पन्न करने से रोकने के लिए सैद्धांतिक रूप से कुछ भी नहीं है।
तो जब आप अधिकतर एक विशेष स्तर (डीबग) पर अपना काम करते हैं तो आप इसे संदर्भ के अपने मूल बिंदु के रूप में लेते हैं, और फिर, जब आप स्विच करते हैं, तो ऑप्टिमाइज़र — को आसानी से दोष देना आसान है, जहां तक यह चिंतित है, हमारे अपने कोड के विपरीत मानक मानकों के अनुरूप रहने के लिए बहुत कुछ कर सकता है।
यह ओ 2 का उपयोग करने वाले हर किसी की तरह है, इसलिए यह बेहतर परीक्षण किया जाता है। कोई विशिष्ट चीज नहीं है, जो O3 कोड को बग्गी होने के कारण संकलित करती है। यह चीजों की तरह है कि ज्यादातर चीजें ओ 2 पर टेस्ट होती हैं, इसलिए O2 ऑप्टिमाइज़ेशन का उपयोग करते समय आपको बग मिल जाएगा। ओ 3 को बग उत्पन्न नहीं करना चाहिए (धारणा के साथ, कि कंपाइलर में कोई बग नहीं है) – DawidPi
@DawidPi, अगर ऐसा होता है, तो ओ 3 सामान्य रूप से बेहतर या बराबर प्रदर्शन प्रदान करने वाले स्तर का उपयोग क्यों नहीं करेगा? मुझे लगता है कि हम इस सवाल से कुछ सीखेंगे। अगर कोई और पहले वहां नहीं जाता है, तो मैं इसमें कुछ शोध करूंगा। – merlin2011
http://stackoverflow.com/questions/5637828/why-would-one-ever-want-to-compile-with-o2-instead-of-o3 इसके बारे में कुछ है – DawidPi