2010-01-27 22 views
6

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

क्या उपकरण या तकनीक मैं निर्धारित करने के लिए वास्तव में कितना समय निर्माण प्रक्रिया के प्रत्येक भाग लेता है इस्तेमाल कर सकते हैं, और क्यों यह धीमी है?

विशेष रुचि के

होगा:

  • कितना समय Makefiles पार्स करने के लिए यह पता लगाने की, निर्भरता पता लगाने, timestamps जाँच, आदि की जरूरत है सुनिश्चित करता है?
  • ग्रहण के पहले और बाद में ग्रहण को कितना समय चाहिए?
  • जीसीसी ने पार्सिंग सिस्टम पर कितना समय खर्च किया है और हेडर को बढ़ावा दिया है?

पी.एस .: ये मेरा घर परियोजना, इतना महंगा उपकरण मेरे लिए पहुंच से बाहर हैं, लेकिन यहां वैसे भी प्रलेखित किया जा सकता है अगर वे विशेष रूप से प्रासंगिक है।

उत्तर

6

चूंकि मेक और जीसीसी उनके द्वारा किए जा रहे कार्यों के बारे में बहुत ही वर्बोज़ हैं, इसलिए बिताए गए समय का उच्च स्तर का अवलोकन प्राप्त करने का एक बहुत ही कच्चा तरीका है कि प्रत्येक पंक्ति के टाइमस्टैम्प की एक स्क्रिप्ट के माध्यम से पाइप मेक आउटपुट:

make | perl -MTime::HiRes -pe "printf '%.5f ', Time::HiRes::time()" 

(मैं ActivePerl उपयोग कर रहा हूँ यह करने के लिए है, लेकिन क्या से मैं इकट्ठा करता हूं, Strawberry Perl अब विंडोज के लिए अनुशंसित पर्ल संस्करण हो सकता है।)

अपनी पसंद के अनुसार टाइमस्टैम्प को सुधार या संसाधित करें।

विशेष रूप से जीसीसी के बारे में अधिक जानकारी प्राप्त करने के लिए, --time-report विकल्प का उपयोग करें।

पता लगाने के लिए कितना भूमि के ऊपर ग्रहण कहते हैं, समय के लिए एक स्टॉपवॉच का उपयोग ग्रहण से और कमांड लाइन से बनाता है।

1

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

और आप अपने संकलन समय में तेजी लाने की कोशिश कर रहे हैं, को निष्क्रिय अनुकूलन, -O0 (अंतिम अक्षर शून्य संख्या, पहला है पत्र पूंजी ओ है)

1

SparkBuild, एक निःशुल्क जीएमके/एनएमके प्रतिस्थापन का प्रयास करें जो निर्माण में प्रत्येक नौकरी के लिए सटीक समय की जानकारी के साथ एक एनोटेटेड बिल्ड लॉग उत्पन्न कर सकता है। समय बीतने के बारे में एक ग्राफिकल अवलोकन पाने के लिए आप उस फ़ाइल को स्पार्कबिल्ड इनसाइट में लोड कर सकते हैं।

इसे कैसे उपयोग करने का एक उदाहरण के लिए this blog देखें।

0

जीएनयू का एक संस्करण remake प्रदान करता है कि जानकारी की रूपरेखा बुलाया करना नहीं है।

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