2011-03-09 14 views
14

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

मैं कुछ स्तर पर अपने संकलन को प्रोफाइल करने में सक्षम होना चाहता हूं जो मुझे उपयोगी जानकारी देगा जो मैं अपने संकलन समय को अधिकतर ले रहा हूं, यह पहचानने के लिए उपयोग कर सकता हूं।

मैंने विजुअल स्टूडियो में "बिल्ड टाइमिंग" को सक्षम करने का प्रयास किया है, लेकिन यह मुझे कंपाइलर के विभिन्न कार्यों के समय की तुलना में अधिक जानकारी नहीं देता है, यह जानकर कि "सीएल" में अधिकतर समय बिताया जाता है, यह बहुत उपयोगी नहीं है।

क्या निम्न स्तर जैसे फ़ाइल या फ़ाइल समय पर संकलन प्रोफ़ाइल करने का कोई तरीका है?

+1

नहीं। इसमें मौलिक ओ (एन) जटिलता है, अलग डीएलएल में कोड को कताई करके एन को कम करें। टेम्पलेट्स कभी सस्ते बीटीडब्ल्यू नहीं हैं। –

+3

मुझे पता है कि टेम्पलेट सस्ते नहीं हैं। हालांकि यह जानना अच्छा होगा कि कौन से टेम्पलेट इंस्टॉलेशन में समय लग रहा है, उदा। कुछ बूस्ट लाइब्रेरी 80% समय ले रही है, इस मामले में मैं कार्यान्वयन को बदलने पर विचार कर सकता हूं। – ronag

+1

महान सवाल, मुझे समयबद्ध उपकरण संकलित करना अच्छा लगेगा। – Inverse

उत्तर

0

आपको अपने कोड को अलग-अलग फ़ाइलों में विभाजित करने का प्रयास करना चाहिए जितना आप कर सकते हैं। मैं दृश्य स्टूडियो का उपयोग नहीं करते, तो मैं ठीक से पता नहीं कैसे वे इस संभाल, लेकिन यहाँ क्यों और कैसे http://www.cplusplus.com/forum/articles/10627/

1

मुझे कोई संकलन की रूपरेखा सलाह प्रदान करने के लिए है के लिए एक अच्छा गाइड है। हेडर फाइल में आगे घोषणा

  • उपयोग जितना संभव हो उतना

    सी ++ में, कक्षाओं में कर सकते हैं आगे घोषित किया जाना अगर आप केवल उपयोग करने की आवश्यकता: हालांकि, यहां कुछ युक्तियां दी गई संकलन के समय को कम करने के लिए पॉइंटर-टू-द-क्लास प्रकार (चूंकि सभी ऑब्जेक्ट पॉइंटर्स समान आकार होते हैं, और यह संकलक की परवाह करता है)। (स्रोत: http://en.wikipedia.org/wiki/Forward_declaration)

  • इसके अलावा, Pimpl मुहावरा का उपयोग कर आप एक बहुत संकलक ही हिस्सा आप संशोधित कर लिया है पुन: संयोजित करने की अनुमति देकर मदद मिलेगी। http://en.wikipedia.org/wiki/Opaque_pointer

  • बचें कैच-ऑल फ़ाइल कि एक पुस्तकालय के सभी फ़ाइल शामिल होता है और केवल शीर्ष लेख आप वास्तव में जरूरत है शामिल हैं।

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