बेंचमार्किंग एक कलाकृति है, जो आमतौर पर आपके इच्छित चीजों को दिखाने के लिए परिणामों में हेरफेर करना आसान है। मैं उम्मीद नहीं करता कि संकलक बहुत छोटे परीक्षण मामलों को छोड़कर एक ही परिणाम उत्पन्न करेंगे, और कभी-कभी उन छोटे परीक्षण मामलों में उनके परिणाम या तो समान या कभी-कभी अलग होते हैं क्योंकि आपके परीक्षण ने ऑप्टिमाइज़ेशन का खुलासा किया है कि एक कंपाइलर जानता/उपयोग करता है और एक अन्य नहीं है।
उदाहरण के लिए मैं ड्रॉस्टोन के साथ ऐसी चीजों (कंपाइलर प्रदर्शन संख्या) का ट्रैक रखने के लिए उपयोग करता था, लेकिन ज्ञात बेंचमार्क के मामले में (नहीं कि ड्रैस्टोन का मतलब अब और अधिक है) लेकिन आप पाएंगे कि कुछ कंपाइलर्स स्वयं को ट्यून कर रहे हैं शायद कुछ और के खर्च पर बेंचमार्क के तहत अच्छा लग रहा है।
कोई सही जवाब नहीं है, कोई सार्वभौमिक "सर्वश्रेष्ठ" नहीं है, यह दर्शक की नजर में है। आपके लिए कौन सा टूल उपयोग करना आसान है, जो आपको गुई या सुंदर रंगों या ध्वनि कार्ड ध्वनियों या जो भी हो, के लिए बेहतर लगता है। और वहां से जाओ।
आमतौर पर जिन अनुप्रयोगों का मैंने परीक्षण किया है, उनके लिए gnu कंपाइलर कोड को "तेज़" नहीं बनाता है, जो दूसरों की तुलना में मेरा बेंचमार्क है, लेकिन मुफ्त gnu टूल का उपयोग करने वाले अधिक लोग हैं, इसलिए इसके लिए समर्थन काफी व्यापक है वेब पेजों और मंचों और उदाहरणों की संख्या के कारण। gnu के पास आकार प्रतिबंध नहीं है, लेकिन इसके लिए अधिक सीखने की आवश्यकता हो सकती है या जो भी उठना और चलाना है ...
कॉर्टेक्स-एमएस armv6m और armv7m परिवारों में विभाजित हैं, v6m (प्रांतस्था-एम 0) केवल अंगूठे 2 एक्सटेंशन की एक छोटी संख्या, armv7m के अंगूठे के बारे में 150 thumbv2 एक्सटेंशन हैं, इसलिए आपको यह जानने की ज़रूरत है कि आपके उपकरण क्या समर्थन करते हैं और गलत चिप पर गलत सामग्री का उपयोग नहीं करते हैं। फिर कंपाइलर्स यदि वे सभी जानते हैं तो वे एक ही स्रोत कोड से विभिन्न निर्देश मिश्रणों का उत्पादन कर सकते हैं। अलग-अलग कमांड लाइन विकल्पों का उपयोग करके उसी कंपाइलर या परिवार के भीतर आप बहुत अलग कोड प्राप्त कर सकते हैं। और उसके बाद एक कॉर्टेक्स-एम 4 के साथ कैश के साथ यदि आपके पास ऐसी चीज है, तो कोड कैश लाइनों में कोड कैसे है, इस पर निर्भर करता है कि आपको काफी अलग प्रदर्शन मिल सकता है, इसलिए बेंचमार्किंग प्रत्येक ब्लॉब के लिए स्वयं में एक शोध प्रोजेक्ट है सी कोड जिसे आप बेंचमार्क करना चाहते हैं। एक एकल कंपाइलर के भीतर प्रदर्शन सीमा किसी अन्य कंपाइलर को छाया दे सकती है या ओवरलैप महत्वपूर्ण नहीं हो सकता है।
यदि आपके पास टूल्स तक पहुंच है तो आप प्रतिस्पर्धात्मक टूल का उपयोग करके सीखने और नौकरी में जाने में सक्षम होने और नौकरी के लिए सही टूल के रूप में जो भी देखते हैं, उसे चुनकर व्यावसायिक रूप से मूल्य जोड़ते हैं। एक किल घर में और तुरंत या एक gnu घर काम करने में सक्षम हो और तुरंत काम करते हैं। यदि आप केवल नौकरी कर रहे हैं और नौकरी एक किल हाउस के लिए है तो आप नौकरी खो सकते हैं।
स्रोत
2015-01-12 22:41:59
क्या आपकी मुख्य चिंता सीख रही है? तो आप कंपाइलर के प्रदर्शन के बारे में क्यों परवाह करते हैं? लिनारो और यागार्टो जीसीसी (विभिन्न पुस्तकालयों) के दो संस्करण हैं। मैं आखिरी [जिसे आपने लिंक किया है] चुनूंगा (https://launchpad.net/gcc-arm-embedded)। गति/आकार संख्या हमेशा सिंथेटिक बेंचमार्क पर आधारित होती है। अपना कोड लें और विभिन्न कंपाइलरों के साथ संकलित करें। आम तौर पर वे जिस तरह से कोड संकलक से अधिक परिणाम प्रतिबिंबित करेंगे। हां, अलग 'सी' कार्यान्वयन के साथ एक ही एल्गोरिदम। –
मेरी मुख्य चिंता स्पष्ट रूप से सीख रही है, लेकिन प्रदर्शन हासिल करने के लिए एक बुरी चीज नहीं है (और इसमें बहुत मज़ा आता है)। हालांकि मैं आपके सुझावों का पालन करता हूं कि एक ही कोड को विभिन्न कंपेलरों को ले जाया जाए और मैं जांच करूंगा कि मुझे कौन सा परिचित हो गया है। टिप्पणी –
के लिए धन्यवाद प्रश्न एक सीखने के संदर्भ के बाहर समान रूप से मान्य है, इसलिए कृपया इसे खारिज न करें "इससे कोई फ़र्क नहीं पड़ता कि आप कौन सी चुनते हैं यदि आप सीख रहे हैं"। मैं सीख नहीं रहा हूं, लेकिन मेरा प्रश्न बहुत समान है और मैं उदाहरण के लिए जानना चाहता हूं कि व्यावसायिक विकल्प जीएनयू एआरएम टूलचेन पर महत्वपूर्ण प्रदर्शन या कोड आकार अंतर प्रदान करते हैं या नहीं। –