zsh অবিশ্বাস্যভাবে ধীরে ধীরে শুরু হয়


63

জেডএসএইচ একটি নতুন টার্মিনাল উইন্ডো তৈরি হতে প্রস্তুত হতে প্রায় দেড় সেকেন্ড সময় নেয়। আমি প্রায় নিশ্চিত যে অভিযুক্ত ব্যক্তি নই compinit

আমি ভাল ডকুমেন্টেশন সন্ধান করতে সক্ষম হইনি compinit,তবে মনে হচ্ছে এটি কোনও ফাইলের মতো প্রয়োজনীয় সমস্ত জিনিস ক্যাশে করা উচিত .zcompdump

এটির গতি বাড়ানোর কোনও কৌশল?

উত্তর:


33

oh-my-zshআমার ল্যাপটপে শুরু করতে প্রায় 1.5 সেকেন্ড সময় লাগছিল। এটিকে প্রায় 0.25 সেকেন্ডে নামিয়ে আনতে আমি যে পদক্ষেপ নিয়েছি তার কয়েকটি লিখেছিলাম

আরেকটি দয়ালু আত্মা আপনার ওহ-মাই-জেডএস-এর অনুলিপিতে আমার পরিবর্তনগুলিকে সংহত করার জন্য প্রয়োজনীয় পদক্ষেপগুলি সংক্ষেপ করে

সবচেয়ে বড় সমস্যাটি হ'ল compinitfpath সম্পূর্ণরূপে সংজ্ঞায়িত হওয়ার পরে কেবল এক সময়ের পরিবর্তে অতিরিক্ত সময়ের পুরো গোছা বলা হত। আমি আমার শাখায় oh-my-zshগিথুবে এই পরিবর্তনগুলি করেছি । পরিবর্তনগুলি গিথুব নিয়ে আলোচনা করা হয়েছে এবং তারা কয়েকটি লোকের জন্য ভালভাবে কাজ করছে বলে মনে হচ্ছে। আশাকরি পরিবর্তনগুলি oh-my-zshঅদূর ভবিষ্যতে একীভূত হবে ।


4
ভবিষ্যতের পাঠকদের জন্য আমি বিশ্বাস করি যে এই সমস্ত পরিবর্তনগুলি এখন মূল প্রবাহে মিশে গেছে।
মাইকেল মায়ার

1
পরিবর্তনগুলি উজানের দিকে সরে গেছে তবে প্লাগিনগুলি থেকে গিট সরিয়ে ফেলা আমার যথেষ্ট সহায়তা করেছে।
kylehotchkiss

25

জেডএসএইচের স্বচ্ছলতার নিজস্ব ন্যায্য অংশ থাকলেও, Last Login:লাইনটি দেখার আগে যদি আপনি কিছু মুহুর্তের জন্য টার্মিনাল উইন্ডোটি ফাঁকা খুঁজে পান, গতির উন্নতি দেখতে আপনাকে আপনার লগ ফাইলগুলি সাফ করতে হবে। এটি এখনও ওএসএক্স সিংহ হিসাবে একটি সমস্যা এবং প্রতি কয়েক মাস অন্তর এটি করা প্রয়োজন। খোঁড়া, আমি জানি।

আদেশটি হ'ল:

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

অবশ্যই, আপনাকে এই নিবন্ধটি আগেই পড়তে হবে এবং সুতরাং ঠিক কী চলছে তা আপনি জানেন, কারণ যে কোনও কিছু যা বলছে sudo rmসে সম্পর্কে চিন্তা করা দরকার। আমি কেবল এটি এখানে রেখেছি কারণ আপনার জেডএসএইচ ব্যবহার শুরু করার জন্য কমান্ড লাইনের সাথে আপনার দক্ষতা প্রমাণ করে।


1
ধন্যবাদ, এমন কোনও কিছুর জন্য এত সহজ সমাধান যা আমাকে এত দিন ধরে জর্জরিত করে চলেছে!
ডিন

7
-rকোনও ডিরেক্টরি জড়িত না হওয়ার কারণে এটি ব্যবহার না করার পরামর্শ দিচ্ছি এবং এটির প্রয়োজন নেই। এটিকে ছাড়তে যদি কেউ sudo rm -rf / private/var/log/asl*.aslভুল করে (প্রাইভেটের আগে স্থান) টাইপ করে তবে অশ্রু কম যায় ।
ডিন

1
বা এমনকি আরও বোকা, cd /private/var/log/aslতারপর rm -f *.asl। এছাড়াও রেকর্ডের জন্য, এই উত্তরটি আমাকে একটি প্রারম্ভকালীন সময় থেকে বাঁচায় যেটি 10 ​​সেকেন্ডের কাছাকাছি এসেছিল, অনেক অনেক ধন্যবাদ!
গ্যারেট ডিস্কো

1
আমার জন্য কাজ! BTW trash /private/var/log/asl*.asltrashঅবশ্যই ইনস্টল করা প্রয়োজন। brew install trash
মাইক ডি

12

আমার বৃহত্তম উন্নতিটি প্লাগইন = () বিভাগ থেকে আইটেমগুলি সরিয়ে নিয়ে এসেছে। 'গিথুব' এবং 'ব্রিউ' প্লাগইনগুলি লোড করতে খুব ধীর।

আমিও মুছে হাব যা আমি ওরফে অন্য করেছিলেন gitএবং যে হিসাবে ভাল প্রম্পট আপ sped।

প্রারম্ভকালীন সময়টি রেকর্ড করতে আমি '/ usr / bin / সময় zsh -i -c প্রস্থান' ব্যবহার করেছি, তবে compinitআমার পক্ষে এটি যথেষ্ট বড় কোনও পার্থক্য বলে মনে হচ্ছে না।

এটির গতি বাড়ানোর জন্য অন্যরা কী করছে তা শুনে খুব ভাল লাগবে।


1
সরানো হচ্ছে githubএবং brewপ্লাগ-ইন আমার সমস্যা অবিলম্বে সমাধান।
পিটার নিদারউইজার

gitএবং brewপ্লাগিনগুলি আমার পক্ষে বেশ প্রয়োজনীয়। rubyপ্লাগইন অপসারণ করে আমার সমস্যার সমাধান হয়েছে। ধন্যবাদ।
ইভান জেডজি জিয়াও

6

আপনি কি প্রাক ইনস্টল /bin/zshবা অন্য একটি ব্যবহার করছেন? আমি জিজ্ঞাসা করি, কারণ আমি ফিঙ্কের মাধ্যমে যে zsh টি ইনস্টল করেছি তা zsh টেম্পলেটগুলির অন্তর্ভুক্তির কারণে মারাত্মকভাবে ধীর শুরু হয় , যখন ভ্যানিলা ঠিক শুরু হয়।

একটি সুস্পষ্ট ডাম্পফিল ( compinit -d dumpfile) দিয়ে দৌড়াদৌড়ি কি এটি আরও দ্রুতগতিতে পরিণত করে? ম্যান পেজ বলে যে

কমপিনেটের পরবর্তী অনুরোধ একটি সম্পূর্ণ সূচনা করার পরিবর্তে ডাম্পড ফাইলটি পড়বে।


2
আমি ওহ আমার জেড (যা আমি বিশ্বাস করি যে ডিফল্ট / বিন / জেডএস ব্যবহার করে) ব্যবহার করছি। যখন আমি ওহ আমার জেডএস এর সমস্ত প্লাগইন এবং হোয়াট নোটগুলি অক্ষম করি তখন এটি সত্যিই দ্রুত লোড হয়ে যায় তবে আমি মনে করি সে ক্ষেত্রে compinitকখনই ডাকা হয় না। আমি যখন ম্যানুয়ালি কল করি তখন compinitএটি কিছুটা সময় নেয়। এটি কেবল কারণ ওহ আমার জেড সংক্ষেপে অনেকগুলি বাঁধাই যুক্ত করেছেন?
এলি

5

ওহ-মাই-জেডএস স্থিতি অনুসন্ধানের আগে ওহ-মাই- zsh.hide- স্থিতি বিশেষ গিট কনফিগারেশন বিকল্পটি পরীক্ষা করে। তাই চালান

গিট কনফিগার করুন ওহ-মাই- zsh.hide- অবস্থা 1

সমস্যাযুক্ত সংগ্রহস্থলের উপর।


আমার জন্য আমাকে গিট প্লাগইনটি অক্ষম করতে হয়েছিল .zshrc। আমি বর্তমানে ধীর ইন্টারনেট প্রতিক্রিয়া নিয়ে সমস্যার মুখোমুখি হচ্ছি, যা zsh ধীর করে দিয়েছিল
পাসচালিস

5

Zsh এর নিজের থেকে শুরু হয় আমার জন্য প্রায় 0.1 সেকেন্ডে, যা যথেষ্ট পরিমাণে ভাল। আমি ঠিক লক্ষ্য করেছি যে 50,000 কমান্ডের ইতিহাসের চিহ্নটির কাছে পৌঁছেছি যে প্রথম প্রম্পটটি লোড করা 3 সেকেন্ডের মতো হয়ে গেছে।

ধীরে ধীরে সূচনার জন্য আপনি কীভাবে এই সমস্ত অন্যান্য কারণগুলি সন্ধান করছেন তা আমি জানি না, তবে আমার প্রথম অনুমানটি হ'ল আমার। আমি একটি mv ~/.zsh_history zsh_history_backupএবং বাম করেছি, 3 সেকেন্ডের স্টার্টআপটি এখন 0.1 সেকেন্ডের শুরু। কৌতূহলজনকভাবে, /usr/bin/time /bin/zsh -i -c exitইতিহাসে লোড হতে সময় লাগে তা ক্যাপচার করতে ব্যর্থ।

আপনার zsh ইতিহাসে যদি কয়েক হাজার কমান্ড না থাকে তবে তা এটি নয়। আমার ~/.zsh_historyপরিমাপ 1.8MB। দুর্ঘটনাক্রমে কোনও টুকরো টুকরো টুকরো টুকরো টুকরো টার্মিনালে কমান্ড হিসাবে আটকানো খুব সম্ভব, এটি ইতিহাসকে দ্রুত ফুটিয়ে তুলবে (যদিও এটি করা এড়াতে এটি খুব বেশি কিছু কারণ এটি সম্ভবত অত্যন্ত ধ্বংসাত্মক হতে পারে)।


এই উত্তর। ওহ-মাই-জেডএস-এর সাথে যদি অভিনব (প্রচুর প্লাগিন এবং অ্যাডনগুলি) কিছু না করে থাকেন তবে আমি গ্যারান্টি দিয়েছি এটি ইতিহাসের লগের কারণে। পরিবর্তন অবিলম্বে।
সেবাস্তিয়ালসো

2

আমি "আফ-ম্যাজিক" থিমটি ব্যবহার করছিলাম

"যাদুঘরে" স্যুইচ করা সমস্যার সমাধান করেছে।

Line / .zshrc সম্পাদনা করুন এবং সেই লাইনটি সংশোধন করুন:

#ZSH_THEME="random"
#ZSH_THEME="af-magic"
ZSH_THEME="muse"

উত্তরের জন্য ধন্যবাদ, আমি খুঁজে পেয়েছি যে আফ-ম্যাজিক থেকে অন্য কোনও সমস্যার জন্য সমস্যার সমাধান হয়েছে changing আকর্ষণীয়ভাবে আফ-ম্যাজিকটি পুনরুদ্ধার করা এখনও দুর্দান্ত কাজ করে। হুডের নীচে কী হয়েছে তা নিশ্চিত নয়।
সারাত

0

~ / .Oh-my-zsh / plugins / ডিরেক্টরিটি সাফ করার পরে আমার সত্যিই দুর্দান্ত গতির উন্নতি হয়েছে। এর ভিতরে অনেক অব্যবহৃত প্লাগইন ছিল।


0

আপনার ~ / .zshenv এ নিম্নলিখিতগুলি যুক্ত করুন

skip_global_compinit=1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.