2010-04-20 12 views
12

मैं कुछ भारी संख्या क्रंचिंग करता हूं और मेरे लिए फ्लोटिंग-पॉइंट प्रदर्शन बहुत महत्वपूर्ण है। मुझे इंटेल कंपाइलर के प्रदर्शन को बहुत अधिक और असेंबली की गुणवत्ता के साथ काफी सामग्री पसंद है।सी ++ 0x ऑप्टिमाइज़िंग कंपाइलर गुणवत्ता

मैं कुछ बिंदु पर सी ++ 0x मुख्य रूप से चीनी भागों के लिए कोशिश कर रहा हूं, जैसे auto, प्रारंभकर्ता सूची, आदि, लेकिन लैम्बडास भी। इस बिंदु पर मैं उन सुविधाओं का उपयोग नियमित रूप से C++ में बढ़ावा देने के माध्यम से करता हूं।

असेंबली कोड कितने अच्छे कंप्यूटर्स C++ 0x उत्पन्न करते हैं? विशेष रूप से इंटेल और जीसीसी कंपाइलर्स। क्या वे एसएसई कोड का उत्पादन करते हैं? प्रदर्शन सी ++ के बराबर है? क्या कोई बेंचमार्क हैं?

मेरी Google खोज ने बहुत कुछ नहीं बताया।

धन्यवाद।

ps: किसी बिंदु पर मैं इसे स्वयं जांचने जा रहा हूं लेकिन सी ++ के सापेक्ष क्या अपेक्षा कर सकता हूं।

+2

इंटेल सी ++ कंपाइलर केवल इस समय एक लैंपडा का समर्थन करता है, और इन्हें लागू किया जाता है जैसे कि वे सरल, विशिष्ट नामित मजेदार थे। तो, ऑप्टिमाइज़ेशन दृष्टिकोण से, उन्हें किसी भी अन्य फ़ंक्शन की तरह अनुकूलित किया जाएगा। –

उत्तर

8

आप अपने कोड के लिए वही अनुकूलन की उम्मीद कर सकते हैं, क्योंकि संकलक निश्चित रूप से अनुकूलन में और भी खराब नहीं होता है। इसलिए केवल नई सी ++ 0x सुविधाओं का उपयोग करने से इसका असर हो सकता है। लेकिन मुझे संदेह है कि आपके मूल दिनचर्या अचानक किसी भी तरह से C++ 0x-only सुविधाओं का उपयोग करने के लिए पूरी तरह बदल जाएंगी।

auto जैसी चीजों को ध्यान में रखें और लैम्ब्डा सिर्फ वाक्य रचनात्मक चीनी हैं। इसका संकलक अनुकूलन पर कोई प्रभाव नहीं पड़ेगा क्योंकि वे वही कोड उत्पन्न करने के तरीके हैं जो आप वैसे भी करेंगे। तो आपको केवल प्रारंभिक सूचियों जैसे नए "सामान" के बारे में चिंता करने की आवश्यकता होगी। लेकिन अगर मैं अक्षम था तो मुझे आश्चर्य होगा।

आपको चाल-अर्थशास्त्र के कारण कई सुधारों की भी अपेक्षा करनी चाहिए। अब आपको डेटा को कॉपी करने की आवश्यकता नहीं है, बल्कि इसे केवल चारों ओर ले जाना चाहिए। अधिकांश लाभ के लिए इसका लाभ उठाने के लिए अपना कोड डिज़ाइन करें।

+3

यदि कुछ भी आपको सैमांतिक्स –

+0

@ बिली के कारण तत्काल लाभ प्राप्त होता है: वास्तव में, महान बिंदु। मैं जोड़ूंगा – GManNickG

+0

अच्छी तरह से, सी ++ 0x जी ++ के साथ सी ++ स्रोतों का पुन: संकलित किया गया और वास्तव में कोई फर्क नहीं पड़ता, जब भी मैं नियमित फ़्लोटिंग-पॉइंट या इंटेल आंतरिक का उपयोग करता हूं। तो जहां तक ​​एक प्रदर्शन वे एक जैसा प्रतीत होते हैं। असेंबली को नहीं देखा है, लेकिन मेरा अनुमान बराबर है – Anycorn

संबंधित मुद्दे