2010-08-19 17 views
5

स्पष्ट रूप से विजुअल स्टूडियो 2010 में सी ++ लिंकर की गति में इतना सुधार नहीं हुआ है (हमारे मामले में लगभग 25%)। इसका मतलब है कि हम अभी भी 30 सेकंड और दो मिनट के बीच जोड़ने के समय के साथ फंस गए हैं। निश्चित रूप से वहाँ वहाँ लिंकर्स हैं जो बेहतर प्रदर्शन करते हैं? क्या किसी को किसी अन्य लिंकर पर स्विच करने या यहां तक ​​कि एक पूर्ण टूल सेट पर स्विच करने का अनुभव है और लिंकिंग समय बहुत कम हो रहा है?विंडोज प्लेटफ़ॉर्म के लिए सबसे तेज़ सी ++ लिंकर क्या है?

चीयर्स,

Sebastiaan

+2

दो मिनट बहुत ज्यादा नहीं लगता है। प्लस तरफ आप एसओ जाने के लिए समय बिता सकते हैं। – dalle

+0

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

+2

शायद आप प्रत्येक संपादन/संकलन/डीबग चक्र में एक से अधिक त्रुटि को ठीक करने का प्रयास कर सकते हैं? :-) – paxdiablo

उत्तर

8

आपको एक तेज़ लिंकर मिल सकता है, लेकिन जब तक कि यह दस गुना तेज न हो और मैं एक घंटे में तीस बार लिंक कर रहा हूं, मुझे लगता है कि मैं उन उपकरणों का उपयोग करना पसंद करूंगा जिनके साथ माइक्रोसॉफ्ट ने परीक्षण किया है।

मैं संभावित रूप से अस्थिर सॉफ़्टवेयर की तुलना में अपेक्षाकृत धीमी लिंक समय चाहता हूं।

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

+6

मैं तब से खुश चीजें विकसित कर रहा हूं! ;) – ereOn

4

हो सकता है, लेकिन मुझे लगता है आप कुछ प्रतिशत अंक के दायरे में सुधार में बात कर रहे होते। आपको कुछ भी तेजी से देखने की संभावना नहीं है जो कि तेजी से बढ़ रहा है (जो है, मुझे लगता है, आप क्या चाहते हैं)।

हालांकि, आपके लिंक समय में सुधार करने के तरीके हैं। आपने क्या विकल्प चालू किए हैं? "बढ़ती लिंकिंग सक्षम करें" और "फ़ंक्शन-स्तरीय लिंकिंग सक्षम करें" जैसी चीजें प्रदर्शन को जोड़ने पर नाटकीय प्रभाव डाल सकती हैं (ठीक है, जाहिर है कि पहली बार जब आप इसे लिंक करते हैं तो यह "पूर्ण" लिंक होगा, लेकिन बाद के लिंक को बहुत तेज़ बनाया जा सकता है इन सेटिंग्स)।

+0

हमने उन सभी ग़लत लिंकर विकल्पों को बंद कर दिया है, हम जितना संभव हो सके 'सामान्य' के रूप में लिंक करने का प्रयास करते हैं। :) विजुअल स्टूडियो लिंकर की धीमीता पीडीबी उत्पन्न करने के कारण होती है। अगर हम बाहर निकलते हैं/डीबग करते हैं, तो लिंकिंग अच्छा और तेज़ है। मैं उम्मीद कर रहा हूं कि वहाँ कुछ लिंकर है जो डीबग जानकारी पीढ़ी को एक स्मार्ट (समांतर) तरीके से करता है। –

+2

@ सेबेस्टियान: वे लिंकर विकल्प किसी भी मानक से बुरा नहीं हैं। – rwong

+0

लिंक-टाइम कोड पीढ़ी (एलटीसीजी) बंद करें क्योंकि यह विकल्पों में से सबसे धीमा है। – rwong

5

जब हमने लिंकर की गति की जांच की, तो हमने डिस्क की गति को सबसे सीमित कारक माना है। फ़ाइल यातायात की मात्रा बहुत बड़ी है, खासकर डीबगिंग जानकारी के कारण (केवल पीडीबी के आकार की जांच करें)।

हमारे लिए समाधान था:

  • , रैम की पागल मात्रा में स्थापित इतना है कि फ़ाइल यातायात का एक बहुत संचित किया जा सकता है (यदि आप 64b ओएस पर कर रहे हैं, 4 जीबी के लिए जाते हैं, या और भी अधिक)। नोट: इतना है कि सिस्टम कैश
  • उपयोग बहुत तेजी से हार्ड ड्राइव के लिए और अधिक स्मृति को समर्पित करने का (के रूप में RAID उनमें से कई को जोड़ने और भी मदद मिल सकती है)

हम सक्षम है आप कुछ प्रणाली सेटिंग्स को बदलने की आवश्यकता हो सकती है एसएसडी के साथ भी प्रयोग किया जाता है, लेकिन एसएसडी हमने कोशिश की है कि बहुत धीमी गति से प्रदर्शन प्रदर्शन था, इसलिए शुद्ध प्रभाव नकारात्मक था। यह इस बीच बदल सकता है, खासकर एसएसडी के सर्वश्रेष्ठ के साथ।

पहले चरण के रूप में मैं प्रक्रिया एक्सप्लोरर (या यहां तक ​​कि कार्य प्रबंधक भी करेगा) लॉन्च करने का सुझाव देगा और लिंक चरण के दौरान अपने सीपीयू लोड और आई/ओ यातायात की जांच करेगा, ताकि आप सत्यापित कर सकें कि आप सीपीयू सीमित हैं, या I/O सीमित है।

+1

क्या आपने पर्याप्त RAM वाले मशीनों पर रैम डिस्क की कोशिश की थी? –

+0

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

1

"एकता" बनाता है देखें। इस कड़ी बार नाटकीय रूप से बेहतर बनाता है:

The benefits/disadvantages of unity builds?

+0

टिप के लिए धन्यवाद, लेकिन हम पहले से ही ऐसा कर रहे हैं। हमने करने से पहले, लिंक के समय पांच और दस मिनट के बीच थे। –

2

वाह और मैं परेशान जब मेरे लिंक समय 10 सेकंड से ऊपर है।

आधुनिक शैली एसएसडी डिस्क का उपयोग करें। मेरे पास 2x 60 जीबी ओसीजेड Vertex2 ई डिस्क RAID 0 के रूप में है और आईओ अब कोई समस्या नहीं है।भारी लिखने के लिए भी एसएसडी दैनिक उपयोग के लिए काफी अच्छा है।

और स्मृति की कुछ गीगाबाइट प्राप्त करें। 8 जीबी रैम से कम काम करने के लिए अब कोई कारण नहीं दिख रहा है।

1

वृद्धिशील लिंकिंग चालू करें, और लिंकिंग 1 सेकंड से अधिक नहीं लेनी चाहिए।

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