जवाबों:
यह Gentoo में उपयोग किया जाता है, और मैंने कुछ भी असामान्य नहीं देखा।
-O3
इसके कई नुकसान हैं:
-O2
या की तुलना में धीमी कोड का उत्पादन करता है -Os
। कभी-कभी यह लूप के अनियंत्रित होने के कारण लंबे समय तक कोड का उत्पादन करता है जो कोड के बदतर कैश प्रदर्शन के कारण वास्तव में धीमा हो सकता है।-O3
।-O3
झंडा संदर्भ स्विचिंग की लागत या I / O की गति को नहीं बदलेगा। मुझे नहीं लगता कि कुल प्रदर्शन का 0.1% स्पीडअप जैसा कुछ है।ध्यान दें कि यदि आप अनुकूलन स्तर बदलते हैं तो टूलचेन (विशेष रूप से ग्लिबक) के बड़े हिस्से संकलित नहीं करते हैं। अधिकांश फलक डिस्ट्रोस पर इन वर्गों के लिए आपकी -O वरीयताओं को अनदेखा करने के लिए बिल्ड सिस्टम सेटअप है।
सीधे शब्दों में कहें, कुछ मूलभूत पुस्तकालय और OS सुविधाएँ वास्तव में कोड पर निर्भर करती हैं कि वह क्या कहती है, न कि कई मामलों में तेजी से। विशेष रूप से -fgcse- के बाद पुनः लोड (-O3 द्वारा सक्षम) विषम मुद्दों का कारण बन सकता है।
पिछले 10 वर्षों में मैं -O3 -march=native
विश्व स्तर पर 1000+ पैकेज के साथ कई Gentoo सिस्टम चला रहा हूं और अभी तक इनमें से किसी भी पौराणिक स्थिरता के मुद्दे पर नहीं चल रहा -O3
है। सीपीयू गहन अनुप्रयोगों (जैसे गणित / विज्ञान ऐप) के बेंचमार्क लगातार -O3
तेज कोड का उत्पादन करने के लिए दिखाते हैं , आखिरकार अगर यह नहीं हुआ तो यह बेकार हो जाएगा। अधिकांश डेस्कटॉप ऐप्स के CFLAGS
लिए वैसे भी बहुत ज्यादा मायने नहीं रखता है क्योंकि वे IO बाउंड हैं, लेकिन यह सर्वर साइड सामान के लिए बहुत मायने रखता है जो CPU बाउंड है।
-O3 कुछ आक्रामक अनुकूलन का उपयोग करता है जो केवल तभी सुरक्षित होते हैं जब रजिस्टर उपयोग के बारे में कुछ धारणाएं, स्टैक फ्रेम के साथ कैसे बातचीत की जाती है, और फ़ंक्शन रीटर्रानसी सच है, और ये धारणाएं कुछ कोड में सच होने की गारंटी नहीं हैं, खासकर जब इनलाइन असेंबली होती है उपयोग किया जाता है (क्योंकि यह कर्नेल और उसके चालक मॉड्यूल के कुछ बहुत निचले स्तर के भागों में है)।
-O2
मौसम का पता करने के लिए इसका परीक्षण करना होगा या नहीं यह दर्द होता है या मदद नहीं करता है
आप (और यह सबसे अनुप्रयोगों पर -O3 और अन्य अनुकूलन घुंडी का उपयोग कर के साथ भाग प्राप्त कर सकते हैं जबकि कर सकते हैं गति सुधार में परिणाम), मैं इस तरह के बदलाव गिरी खुद या उपकरण श्रृंखला पर यह निर्माण (संकलक, binutils के लिए आवश्यक का उपयोग करने में संकोच होता है, आदि।)।
इसके बारे में सोचें: क्या सिस्टम क्रैश या संभावित डेटा हानि और / या भ्रष्टाचार के लायक छापे और ext3 सबसिस्टम का 5% प्रदर्शन लाभ है?
आपके द्वारा चलाए जा रहे उस क्वेक पोर्ट के लिए इच्छित सभी नॉब को ट्विक करें या आप अपने डीवीडी संग्रह को डिवाइड करने के लिए ऑडियो / वीडियो कोडेक्स का उपयोग करें। आप संभवतः एक सुधार देखेंगे। बस w / कर्नेल को गड़बड़ न करें जब तक आपके पास समय बर्बाद और डेटा न हो जिसे आप खो सकते हैं।
-O0
से बिल्कुल भी समर्थित नहीं है! stackoverflow.com/questions/29151235/…