मुझे आशा है कि यह अधिक दर्द होता है की तुलना में :)
मैं एक कुछ समय से अधिक साल पहले एक छोटे से संकलक शूटआउट किया मदद करता है, और मैं स्मृति बंद जा रहा हूँ।
- जीसीसी 4.2 (Apple)
- इंटेल 10
- जीसीसी 4.2 (Apple) + LLVM
मैं कई टेम्पलेट भारी ऑडियो सिग्नल प्रोसेसिंग प्रोग्राम हैं जो मैं लिखा था परीक्षण किया गया।
संकलन के समय: इंटेल कंपाइलर अब तक का सबसे धीमा संकलक था - एक और पोस्ट उद्धृत के रूप में '2x गुना धीमा' से अधिक था।
जीसीसी ने इंटेल की तुलना में गहरे टेम्पलेट्स को बहुत अच्छी तरह से संभाला।
इंटेल कंपाइलर विशाल ऑब्जेक्ट फ़ाइलों को उत्पन्न करता है।
जीसीसी + एलएलवीएम ने सबसे छोटी बाइनरी पैदा की।
प्रोग्राम के निर्माण के कारण उत्पन्न कोड में महत्वपूर्ण भिन्नता हो सकती है, और जहां सिमड का उपयोग किया जा सकता है।
जिस तरह से मैंने लिखा, मुझे पता चला कि जीसीसी + एलएलवीएम ने सबसे अच्छा कोड बनाया है। उन कार्यक्रमों के लिए जो मैंने पहले लिखा था, मैंने अनुकूलन को गंभीरता से लिया (जैसा कि मैंने लिखा था), इंटेल आमतौर पर बेहतर था।
इंटेल के परिणाम अलग-अलग थे; इसने कुछ कार्यक्रमों को कहीं बेहतर तरीके से संभाला, और कुछ कार्यक्रम बहुत खराब हुए। इसने कच्चे प्रसंस्करण को बहुत अच्छी तरह से संभाला, लेकिन मैं केसीसी को एलसीसी + एलएलवीएम देता हूं क्योंकि जब बड़े (सामान्य) कार्यक्रम के संदर्भ में रखा जाता है ... यह बेहतर होता है।
इंटेल बॉक्स के बाहर जीत गया, विशाल डेटा सेट पर संख्या क्रंचिंग।
जीसीसी अकेले, धीमी कोड उत्पन्न यह माप और नैनो-अनुकूलन के साथ के रूप में तेजी से हो सकता है, हालांकि। मैं उन लोगों से बचना पसंद करता हूं क्योंकि हवा अगले कंपेलर रिलीज के साथ दिशा बदल सकती है, इसलिए बोलने के लिए।
मैं कभी नहीं इस परीक्षण में मापा जाता खराब लिखा कार्यक्रमों (अर्थात परिणाम बेहतर प्रदर्शन लोकप्रिय प्रदर्शन पुस्तकालयों का वितरण)।
अंत में, कार्यक्रमों कई वर्षों में लिखा गया था, उस समय में प्राथमिक संकलक के रूप में जीसीसी का उपयोग कर।
अद्यतन: मैं भी Core2Duo के लिए अनुकूलन/एक्सटेंशन सक्षम था। कार्यक्रम सख्त एलियासिंग सक्षम करने के लिए पर्याप्त साफ थे।
जब तक कंपाइलर/तेज स्विच के साथ चलता है और एक इंटेल सीपीयू पर चलता है (संकलक को इंटेल सीपीयू पर चलाना चाहिए, आवश्यक रूप से संकलित प्रोग्राम नहीं), आपको कुल मिलाकर एक अधिक कुशल कोड मिलता है। –