2010-07-21 21 views
6

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

नोट: स्रोत और बाइनरी रैम फ़ाइल सिस्टम में आकार में बहुत बड़े हैं और मैं निर्देशिका संरचना को बदलना या दर्शन बनाना नहीं चाहता हूं।

उत्तर

4

make -jN है एक अब है कि ज्यादातर मशीनों मल्टी कोर हैं चाहिए। आप -jN हर बार लिखने के लिए नहीं करना चाहते हैं, तो आप अपने .bashrc में

export MAKEFLAGS=-jN 

डाल सकते हैं।

आप distcc चेकआउट भी देखना चाहेंगे।

4

यदि आपकी परियोजना एक मशीन को संभालने के लिए बहुत बड़ी हो रही है, तो आप Electric Cloud जैसे वितरित मेक प्रतिस्थापन का उपयोग कर सकते हैं।

5

आप कोशिश कर सकते हैं

make -j<number of jobs to run in parallel> 
0

आप समानांतर में अपने निर्माण को चलाना चाहते हैं,

make -jN 

काम करता है, लेकिन ध्यान रखें:

  1. N, maximum number of threads your machine supports बराबर होना चाहिए अगर आप बड़ी संख्या में प्रवेश उसके अलावा, make स्वचालित रूप से N=maximum number of threads your machine supports
  2. makeमें -jN का उपयोग कर समानांतर निर्माण का समर्थन नहीं करता बनाता है, यह सिर्फ एक धारावाहिक निर्माण करता है। यदि आप निर्दिष्ट करते हैं - jN, तो यह N=1 डाउनग्रेड करेगा।

यहां अधिक पढ़ें, make स्रोत से: http://cmdlinelinux.blogspot.com/2014/04/parallel-build-using-gnu-make-j.html

+0

MSDOS = विंडोज, और आप बिंदु 2. – rubenvb

+0

@rubenvb में समानांतर मेकअप के बारे में गलत हो: हाँ, मुझे लगता है कि पता है। यह इंगित करने के लिए धन्यवाद कि स्रोत, केवल 'एमएसडीओएस' के बारे में उल्लेख किया गया है और 'विंडोज़' नहीं है, मुझे नहीं पता कि मैंने यह क्यों लिखा है, ठीक है! – brokenfoot

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