मैंने सुना है कि लिंक-टाइम कोड जनरेशन (/ एलटीसीजी स्विच) को सक्षम करना बड़ी परियोजनाओं के लिए एक प्रमुख अनुकूलन हो सकता है जिसमें कई पुस्तकालयों को एक साथ जोड़ने के लिए किया जा सकता है। मेरी टीम इसका उपयोग हमारे समाधान की रिलीज कॉन्फ़िगरेशन में कर रही है, लेकिन लंबे संकलन-समय एक असली ड्रैग है। एक फ़ाइल में एक बदलाव जो कोई अन्य फ़ाइल "जनरेटिंग कोड ..." के 45 सेकंड को ट्रिगर करने पर निर्भर करता है। रिलीज निश्चित रूप से डीबग से बहुत तेज है, लेकिन हम एलटीसीजी को अक्षम करके और बस/ओ 2 छोड़कर एक ही गति-अप प्राप्त कर सकते हैं।लिंक-टाइम कोड जनरेशन के पेशेवर + विपक्ष क्या हैं? (वीएस 2005)
क्या इसे छोड़ने/एलटीसीजी सक्षम करने के लायक है?
'रिलीज बनाना एक नया संस्करण संख्या और स्रोतों को लेबल/संग्रहित करने के साथ, स्रोत नियंत्रण से पुनर्वितरण योग्य (बाइनरी या यहां तक कि सेटअप) का एक पूर्ण निर्माण होना चाहिए, क्या यह खंड में लिखे गए शब्दों के विरोधाभास में नहीं है। मैट Pietrek (जोर मेरा है) द्वारा एलटीसीजी उपयोग पर सीमा [इस लेख] पर [https://msdn.microsoft.com/en-us/library/bb985904.aspx): .. जारी रखने के लिए। – Belloc
'एलटीसीजी आम तौर पर एक अच्छी बात है, कुछ संभावित नुकसान हैं जो आपको प्रभावित कर सकते हैं। सबसे पहले, प्रीकंपिल्ड हेडर और एलटीसीजी असंगत हैं। अधिकांश उपयोगकर्ताओं के लिए यह कोई मुद्दा नहीं होना चाहिए, क्योंकि ** आप आम तौर पर केवल रिलीज बिल्ड में एलटीसीजी चालू करते हैं * *, जहां संकलन समय आमतौर पर कोई समस्या नहीं है। ' – Belloc
मुझे कोई समस्या नहीं दिखाई दे रही है, मेरा मुख्य बिंदु यह है कि रिलीज बिल्ड अवधि को इससे कोई फर्क नहीं पड़ता। रिलीज बिल्ड स्वचालित होना चाहिए और डेवलपर मशीन को अवरुद्ध नहीं करना चाहिए एस (या कम से कम: कम हैं)। ऑप्टिमाइज़र के कारण और एलटीसीजी के कारण वे काफी धीमे हैं। रिहाई के निर्माण में पीसीएच का उपयोग नहीं करने से यह धीमा हो जाएगा, लेकिन इतना नहीं, अपेक्षाकृत बोलना, और विकास के निर्माण को प्रभावित नहीं करता है। --- इसके अलावा सीमा अतीत की बात प्रतीत होती है (वीएस2003 शायद?), AFAICT एलटीसीजी और पीसीएच संगत हैं, – peterchen