मैं -l
विकल्प का उपयोग करने के खिलाफ सलाह देते हैं:
यहाँ कुछ अनुभवजन्य संख्याएँ देखें।
सिद्धांत रूप में, -l
-j
से बेहतर लगता है। -j
कहता है, यह कई नौकरियां शुरू करें। -l
कहता है, सुनिश्चित करें कि यह कई नौकरियां चल रही हैं। अक्सर, वे लगभग एक ही चीज हैं, लेकिन जब आपके पास I/O बाध्य नौकरियां अन्य विषमताएं हैं, तो -l
बेहतर होना चाहिए।
उस ने कहा, लोड औसत की अवधारणा थोड़ा संदिग्ध है। यह जरूरी है कि सिस्टम पर क्या चल रहा है। तो यदि आप make -j -l N
चलाते हैं (कुछ N
के लिए) और आपके पास एक अच्छी तरह से लिखित मेकफ़ाइल है, तो सिस्टम लोड के पहले नमूने को लेने से पहले तुरंत बड़ी संख्या में नौकरियां शुरू करेंगी और फाइल डिस्क्रिप्टर या मेमोरी से बाहर हो जाएंगी। साथ ही, भार औसत का लेखांकन ऑपरेटिंग सिस्टम में भिन्न होता है, और कुछ अस्पष्ट लोगों के पास यह बिल्कुल नहीं होता है।
प्रैक्टिस में, आप -j
का उपयोग करके भी बंद हो जाएंगे और कम सिरदर्द होंगे। निर्माण से अधिक प्रदर्शन प्राप्त करने के लिए, अपनी मेकफ़ाइल ट्यून करें, कंपाइलर विकल्पों के साथ खेलें, और सीसीएच या इसी तरह का उपयोग करें।
स्रोत
2012-11-13 03:11:16
प्रयोगात्मक (मुझे लगता है
-l
विकल्प के लिए मूल कारण एक समय की वजह से उपजी जब एकाधिक प्रोसेसर दुर्लभ थे और मैं/हे वास्तव में धीमी थी।) हालांकि मैं एक मशीन पर देखा -j मैं के विभिन्न उपयोग के समय जबकि एक 4 कोर मशीन पर -j8 का उपयोग कर सबसे तेज़ संकलन मिला। – Zitraxमेरे पास समान अनुभव है। शायद क्योंकि संकलन के कुछ I/O- बाध्य चरण हैं, ताकि जब I/O के लिए एक कंपाइलर प्रक्रिया ब्लॉक हो, तो कोई भी उस समय संकलन के लिए उपयोग कर सकता है। –