निष्कर्ष यह है कि MacOS पर नए गोले के लिए स्टार्टअप समय उनके लिए बहुत धीमी गति से कर रहे हैं के लिए आ रहा किसी के लिए, यह है समाधान ।
मुझे अभी पता चला है कि वास्तव में दो पैकेज हैं, जिनके माध्यम से स्थापित किया जा सकता है brew
। मैं bash-completion
वर्षों से पैकेज स्थापित कर रहा हूं , और कभी भी इस पर सवाल उठाने की जहमत नहीं उठाई, भले ही उस समय में मैं बैश 3 से 4 तक चला गया हूं, अब 5 तक। समय-समय पर, हालांकि, मैं समस्या पर दोबारा गौर करूंगा। , अक्सर इस StackOverflow चर्चा पर ठोकर खाते हुए।
एक और पैकेज है bash-completion@2
,!
क्या फर्क पड़ता है? bash-completion
बैश संस्करण 3.2 के लिए है। bash-completion@2
बैश संस्करण 4.1+ और 5 के लिए है।
पुराने bash-completion
पैकेज को हटाने , और स्थापित करने में bash-completion@2
, मेरा शेल स्टार्टअप समय 605ms से 244ms पर गिर गया है। यह एक बड़ी गति में सुधार है।
मुझे संदेह है कि हम में से बहुत से लोग यह गलती कर रहे हैं, क्योंकि brew info
आंकड़े बताते हैं कि पूर्व में टन स्थापित है, जबकि बाद में बहुत कम है:
यह ध्यान दिया जाना चाहिए कि वर्तमान चुने गए उत्तर में कुछ पंक्तियों का उल्लेख किया गया है, जो केवल स्टार्टअप समय (यदि पुराने bash-completion
पैकेज का उपयोग करते हुए , जो कि शायद बहुत से हैं) का मामूली सुधार प्रदान करता है , लेकिन नए bash-completion@2
पैकेज पर कोई प्रभाव नहीं पड़ता है : यह नया पैकेज तेजी से कोई बात नहीं क्या है इसका मतलब है कि कोई हैक की आवश्यकता नहीं है।
टी एल; डॉ:
brew uninstall bash-completion && brew install bash-completion@2
याद रखें कि अपने .bashrc
या .bash_profile
फ़ाइल में स्रोत पथ को पूरा करने के लिए अद्यतन करें ।
सूत्रों का कहना है:
एक विषय के रूप में कुछ हद तक संबंधित है, मैं rclone
उपयोगिता का बहुत उपयोग करता हूं , इसलिए यह स्थापित है। यह मेरे द्वारा देखी गई सबसे बड़ी पूर्ण फ़ाइल होने के लिए भी होता है । इसे हटाने से मेरे शेल स्टार्टअप का समय ~ 120ms कम हो जाता है, जो बहुत तेज़ है।
संपादित करें:
जो कोई भी तकनीकी विवरण चाहता है, जो इस समस्या की व्याख्या करता है, मैंने इसके बारे में Homebrew मंचों पर लंबाई में लिखा है । संक्षेप में, कारण यह bash-completion@2
है कि इतनी तेज है क्योंकि यह लिखा गया था ताकि यह अब सभी पूर्ण फ़ाइलों को उत्सुकता से लोड न करे ; इसके बजाय यह एक पूर्ण फ़ाइल ऑन-डिमांड को लोड करता है, या जैसा कि लेखक इसका वर्णन करता है, यह उन्हें गैर-उत्सुक तरीके से लोड करता है।