2009-03-24 13 views
5

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

सामान्यतः, दोनों में से कौन सा तेज़ है?

उत्तर

13

ठीक है, ऐसे कई चर हैं जो चीजों को प्रभावित कर सकते हैं। यहां कुछ कारण दिए गए हैं डीबग तेजी से हो सकता है:

  • आमतौर पर डीबग मोड बहुत कम अनुकूलन करता है, क्योंकि वे कोड के निर्देशों और रेखाओं के बीच मैपिंग को गड़बड़ कर सकते हैं। तो, कंपाइलर कम काम कर रहा है।
  • भले ही एक पूर्ण डीबग बिल्ड धीमा हो, फिर भी डीबग बिल्डिंग बहुत अधिक होता है और आम तौर पर रिलीज बिल्ड कैन की तुलना में बढ़ती हुई बिल्डिंग का लाभ उठा सकता है। तो अक्सर एक डीबग बिल्ड को रिलीज बिल्ड के रूप में लगभग उतना ही काम नहीं करना पड़ता है।
0

बस एक अनुमान है, लेकिन मुझे लगता है कि रिलीज बिल्ड ऑप्टिमाइज़ेशन के कारण ज्यादातर मामलों में अधिक समय लेगा।

0

डीबग बिल्ड आमतौर पर तेज़ होते हैं क्योंकि कोई अनुकूलन नहीं किया जाता है (जो रिलीज बिल्ड में बहुत आम है)।

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

डीबग और रिलीज के बीच मुख्य अंतर है कि डीबग डीबगिंग के लिए है (ताकि डिबगिंग प्रतीकों भी शामिल है) और इसलिए आप कुल मिलाकर मजबूत अनुकूलन

1

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

यह रिलीज खरीद के लिए नीचे है और शायद अधिक आक्रामक अनुकूलन है और ये डिबग्बिलिटी के साथ हस्तक्षेप कर सकते हैं। इसके अलावा, कुछ बड़े पैमाने पर अनुकूलन में काफी समय लगता है। ऑब्जेक्ट फ़ाइलों में डीबग जानकारी डालने का समय अनजान होने के लिए काफी छोटा है, संभवतः डिस्क को स्रोत कोड को पढ़ने से कम समय लगता है।

0

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

अधिकांश कंपाइलर आपको रिलीज बिल्ड पर ऑप्टिमाइज़ेशन बंद करने देंगे। इसे इस्तेमाल करे। आपके निर्माण के समय कम हो जाएगा। आप डीबग बिल्ड पर ऑप्टिमाइज़ेशन भी चालू कर सकते हैं और अपने निर्माण के समय चढ़ सकते हैं।

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