पूर्व-निर्मित बायनेरिज़ प्रदर्शन का उपयोग करके संकलन बनाम?


11

क्या प्रदर्शन बेहतर (तेज) होगा यदि मैं मैन्युअल रूप से वास्तविक मशीन के लिए एक सॉफ़्टवेयर घटक के लिए स्रोत को संकलित करता हूं, जिसका उपयोग उस पर किया जाएगा, तो इसकी तुलना में यदि स्रोत किसी अन्य प्लेटफ़ॉर्म पर कई अलग-अलग आर्किटेक्चर के लिए संकलित किया गया था? मुझे कुछ अच्छे परिणाम संकलन स्रोत मिले जो मैंने डाउनलोड किए और मुझे आश्चर्य है कि क्या यह पूर्व-संकलित बाइनरी डाउनलोड करने के बजाय इसे संकलित करने के कारण था जो अक्सर सॉफ़्टवेयर अपडेट के मामले में होता है।


2
कई आर्किटेक्चर के साथ संगतता के लिए संकलन संभवतः कुछ अनुकूलन को समाप्त करता है जो एकल आर्किटेक्चर के लिए संकलन करते समय संभव हो सकता है।
रॉबर्ट हार्वे

1
अधिक निशाना बनाया जा रहा है (जो लगभग हमेशा फायदेमंद होगा) के अलावा, आप शायद होगा भी विभिन्न compilers अलग अनुकूलन का समर्थन है, और कभी कभी निष्पादन की कमियाँ एक करके दूर अनुकूलित किया जा सकता है, लेकिन अन्य (रों) - compilers के बीच बड़े मतभेद का सामना।
डैनियल बी

जवाबों:


8

कई (यदि अधिकांश नहीं) मामलों में, हाँ। ऐसा इसलिए है क्योंकि कंपाइलर उस विशेष सीपीयू और पर्यावरण के लिए अनुकूलित देशी कोड का उत्पादन कर सकता है। कोड अधिक "लक्षित" है।


8

स्रोतों से संकलित करने से आपको संकलक झंडे को स्थापित करने का एक फायदा मिलता है जिस तरह से आप अपने विशिष्ट मंच के लिए चाहते हैं। एक ऐसे पैकेज को डाउनलोड करना, जिसे आपकी जैसी सटीक सेटिंग्स के साथ संकलित किया गया है, उससे कोई अंतर नहीं पड़ता, लेकिन चूक से सेटिंग बदलने से आपको बड़े सुधार मिल सकते हैं।

उदाहरण के लिए, यदि डाउनलोड के लिए दी जाने वाली बायनेरीज़ को डिबगिंग (जानबूझकर या गलती से) के लिए संकलित किया गया था, तो अधिक आक्रामक अनुकूलन चालू करने से लगभग सभी स्थितियों में प्रदर्शन में सुधार होगा। दूसरी ओर, यदि संकलित कोड अधिकतम के अनुकूल है, तो आपको कोई अंतर नहीं दिखाई देगा।


इसलिए मेरा संकलन प्रयास व्यर्थ नहीं गया। मैंने स्रोत को mod_jk पर डाउनलोड किया और संकलित किया और यह बहुत तेज़ हो गया और मुझे आश्चर्य है कि क्या यह मैनुअल संकलन के कारण था। जवाब के लिए धन्यवाद।
निकोलस

1

यह वास्तव में उपयोग किए गए दो संकलक और संकलक झंडे पर निर्भर करता है। यदि आपके पास सही तरीके से कॉन्फ़िगर की गई चीजें हैं, तो आमतौर पर आपके स्थानीय मशीन पर संकलक और ध्वज सेटिंग्स आपके विशेष मशीन के लिए अधिक उपयुक्त होती हैं।

लेकिन, अगर, उदाहरण के लिए, पूर्व-निर्मित द्विआधारी का निर्माण कंपाइलर की तुलना में बहुत बेहतर अनुकूलन वाले कंपाइलर (या कोड के उस विशेष टुकड़े के लिए तैयार किए गए झंडे के साथ बनाया गया बेंचमार्क विशेष) के साथ किया गया है। आपका सिस्टम, तो यह संभव है कि आपके सिस्टम पर जो भी कंपाइलर हो वह वास्तव में खराब प्रदर्शन का कारण हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.