शेल खोलने में iTerm / टर्मिनल OS X धीमा


14

मैं OS X 10.8 का उपयोग कर रहा हूं और हाल ही में मैं यह देख रहा हूं कि iTerm2 कभी-कभी एक नया शेल खोलने के साथ काफी धीमा हो सकता है। मुझे कुछ करने से पहले लगभग 5 सेकंड लगते हैं। बहुत अधिक प्रतीत नहीं हो सकता है, लेकिन मैं शेल में बहुत काम करता हूं ताकि यह बहुत कष्टप्रद हो सके।

मैं ZSH का उपयोग ओह-माय-ज़श के साथ कर रहा हूँ।

मैंने टर्मिनल की कोशिश की है, स्टार्टअप फाइलों (.zshenv, .zlogin, .zprofile, .zshrc, .zlogout) से अनावश्यक रूप से सबकुछ साफ़ करते हुए / var / log / log और asl में ASL- फ़ाइलों को साफ़ करते हुए। हालांकि यह थोड़ा नीचे चला जाता है (0.20s की तरह), वहाँ कुछ भी नहीं है जो इसे बहुत तात्कालिक या 3.0 से नीचे भी लाता है।

क्या किसी के पास एक और विचार है?


संबंधित प्रश्न: 31403 , 41743 , 236953 , 444614
Lri

क्या आपने कुछ के लिए नए गोले के लिए कमांड बदलने की कोशिश की है login -pfq username /usr/local/bin/zsh?
Lri

@ lauri-ranta: उन दूसरे धागों में सब कुछ करने की कोशिश की, लेकिन कोई फायदा नहीं हुआ। "लॉगिन -pfq उपयोगकर्ता नाम / usr / स्थानीय / बिन / zsh" की कोशिश करने से भी कुछ नहीं हुआ।
दिमित्री

यह देखने के लिए कि क्या यह शेल- या iTerm2 संबंधित है: एक नया शेल शुरू करने में कितना समय लगता है? ( zshपहले से खुली टर्मिनल विंडो में प्रवेश करके )?
मत्तो

इसमें जोड़ें .zshrc:[ $((RANDOM & 1)) -eq 0 ] && do not sleep 5
थियोडेन

जवाबों:


18

लॉग इन /var/log/asl, अर्थात

rm -rf /var/log/asl/*.asl

1
क्या आप बता सकते हैं कि इस लॉग फोल्डर के द्वारा इटर्म को धीमा क्यों किया जा रहा है और क्या ऐसा कुछ है जो वास्तव में इस समस्या को होने से रोक सकता है?
डेविड

2
@david आप इस लिंक को यह समझने के लिए जाँच सकते हैं कि नए टैब धीमा क्यों हैं। Apple.stackexchange.com/a/71930/89583
अर्चना मिश्रा

वाह --- बहुत बहुत धन्यवाद --- iterm2 के लिए ऐसा लगता है कि उत्तर उस पृष्ठ के नीचे (/ बिन / बैश -il) के सुझाव का उपयोग करने के लिए है, जो उस व्यक्ति से -1 तक डाउनवोट हो गया। बहुत अच्छा काम करता है।
डेविड

12

ऊपर के अर्चना मिश्रा की टिप्पणी के अनुसार, iTerm 2 के लिए उत्तर एक कस्टम टर्मिनल कमांड सेट करना है /bin/bash -il जो सिस्टम ASL लॉग को पूरी तरह से खोज कर बाईपास करता है। iterm2 अब तुरंत खुलता है।


1

ये वे चरण हैं जिनका उपयोग मैंने अपने शेल स्टार्टअप स्पीड को ऑप्टिमाइज़ करने और कमांड निष्पादित करने में अंतराल को कम करने के लिए किया है -

  1. यदि आप पॉवरलेवल 9k का उपयोग कर रहे हैं, तो मैं तुरंत पॉवरलेवल 10k पर स्विच करने की सलाह दूंगा ।

Powerlevel10k Zsh के लिए एक थीम है। यह गति, लचीलेपन और आउट-ऑफ-द-बॉक्स अनुभव पर जोर देता है। यह लोकप्रिय Powerlevel9k zsh थीम का पुन: क्रियान्वयन है। यह बिल्कुल वैसा ही दिखता है जैसा कि एक ही विन्यास दिया गया है, लेकिन यह 10-100 गुना तेज गति प्रदान करता है। यह ढेर के हर स्तर पर अनुकूलित है, सभी तरह से libgit2 के एक पैच संस्करण का उपयोग करने के लिए है जो मूल से 4 गुना तेजी से रेपो स्कैन कर सकता है। यह Zsh स्टार्टअप लैग को हटा सकता है भले ही यह इंस्टेंट प्रॉम्प्ट जैसे फीचर्स के कारण न हो।

  1. प्राथमिकताएं -> प्रोफाइल -> जनरल -> कमांड पर जाएं और लॉगिन शेल के बजाय विकल्प कमांड का चयन करें और नीचे दिए गए कमांड को बॉक्स में चिपकाएं।
login -pfq username /usr/local/bin/zsh -il

अब नया टैब शुरू करते समय आपको अंतिम लॉगिन समय नहीं दिखाई देगा। यदि zsh लोकेशन / usr / लोकल / बिन / zsh में मौजूद नहीं है, तो आपको ब्रुश का उपयोग करके zsh इंस्टॉल करना होगा। मैक द्वारा प्रदान किया गया डिफ़ॉल्ट zsh / usr / bin / zsh पर है और 5.2 जैसे पुराने संस्करण का उपयोग कर सकता है जो iTerm या oh-my-zsh के साथ उपयोग करने पर धीमी गति का कारण बन सकता है।

  1. Zsh तेजी से चिपकाने के लिए, टर्मिनल में नीचे दिए गए कमांड को निष्पादित करें।
mkdir -p $ZSH_CUSTOM/lib && touch $ZSH_CUSTOM/lib/misc.zsh
  1. प्वाइंट 2 को पहले से ही धीमे लॉगिन समय का ध्यान रखना चाहिए। लेकिन बस सुरक्षा के लिए नीचे दिए गए कमांड को निष्पादित करें
mkdir -p .hushlogin
  1. आपके द्वारा उपयोग किए जा सकने वाले कई प्लगइन्स हैं जो धीमे हैं और लैग बनाता है। आपको इन प्लगइन्स को इंगित करने और उन्हें निकालने की आवश्यकता है। इसके लिए आपको zsh प्रोफाइलिंग की आवश्यकता होगी। अधिक ब्योरे के लिए इस लिंक को फ़ॉलो करें -

https://stevenvanbael.com/profiling-zsh-startup


सुपर उपयोगकर्ता में आपका स्वागत है! कृपया एक से अधिक प्रश्नों के उत्तर न दें। यदि समान जानकारी वास्तव में दोनों प्रश्नों का उत्तर देती है, तो एक प्रश्न (आमतौर पर नया एक) दूसरे के डुप्लिकेट के रूप में बंद होना चाहिए। आप इसे डुप्लिकेट के रूप में बंद करने के लिए मतदान द्वारा इंगित कर सकते हैं या, यदि आपके पास इसके लिए पर्याप्त प्रतिष्ठा नहीं है, तो यह इंगित करने के लिए कि यह एक डुप्लिकेट है, एक ध्वज उठाएं । अन्यथा इस प्रश्न के लिए अपने उत्तर को दर्जी करें और एक ही उत्तर को कई स्थानों पर पेस्ट न करें।
DavidPostill
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.