के साथ स्थिर लाइब्रेरी बनाने के लिए अनुकूलन और झंडे मैं बस लिनक्स पर जी ++ कंपाइलर से शुरू कर रहा हूं और कंपाइलर झंडे पर कुछ प्रश्न प्राप्त कर रहा हूं। यहाँ वेजी ++
अनुकूलन
मैं अनुकूलन झंडे -O1
, -O2
और -O3
जी ++ मैनुअल पृष्ठ में के बारे में पढ़ा है। मुझे नहीं पता था कि इन झंडे का उपयोग कब किया जाए। आमतौर पर आप किस अनुकूलन स्तर का उपयोग करते हैं? जी ++ मैनुअल -O2
के लिए निम्नलिखित कहता है।
और भी अनुकूलित करें। जीसीसी लगभग सभी समर्थित अनुकूलन करता है जिनमें स्पेस-स्पीड ट्रेडऑफ शामिल नहीं है। जब आप -O2 निर्दिष्ट करते हैं तो संकलक लूप अनोलिंग या फ़ंक्शन इनलाइनिंग नहीं करता है। -ओ की तुलना में, यह विकल्प संकलन समय और जेनरेट कोड के प्रदर्शन दोनों को बढ़ाता है।
यदि यह इनलाइनिंग और लूप अनोलिंग नहीं कर रहा है, तो प्रदर्शन प्रदर्शन संगठन कैसे प्राप्त किए जाते हैं और क्या यह विकल्प अनुशंसित है?
स्टेटिक लाइब्रेरी
मैं जी का उपयोग कर एक स्थिर पुस्तकालय कैसे बना सकता हूँ ++? विजुअल स्टूडियो में, मैं एक क्लास लाइब्रेरी प्रोजेक्ट चुन सकता हूं और इसे "lib" फ़ाइल में संकलित किया जाएगा। जी ++ में समतुल्य क्या है?
[2003 में, जीसीसी की -ओ 3 छोटी थी और खराब रैप मिला।] (Http://stackoverflow.com/a/11546263/845092) आजकल जब आप नियम तोड़ते हैं तो यह खराब कोड उत्पन्न करता है, लेकिन ब्रेकिंग जैसे लोग नियम होते हैं और परिणाम होने पर पागल हो जाते हैं, इसलिए अवैध कोड लिखने के परिणामों से बचने के लिए वे -ओ 2 तक चिपके रहते हैं। –