ZSHは新しいターミナルウィンドウを作成してから準備が整うまでに1秒半くらいかかる。犯人はcompinit
であることは間違いないと思います
compinit,
についての良いドキュメントが見つからないのですが、.zcompdump
のようにどこかのファイルに必要なものをすべてキャッシュしているはずです
スピードを上げるコツは?
72 Eli 2011-01-24
oh-my-zsh
は、私のラップトップで起動するのに約1.5秒かかっていました。これを約0.25秒にするために取った手順をいくつか書いてみました
もう一人の親切な魂 oh-my-zshのコピーに私の変更を統合するために必要な手順をまとめました
最大の問題は、fpath が完全に定義された後に compinit
が一度だけではなく、余分に何度も呼ばれていたことです。私はgithubのoh-my-zsh
のブランチでこれらの変更を行いました。この変更は github で議論されており、何人かの人にとってはうまくいっているようです。近い将来、変更が oh-my-zsh
にマージされることを期待しています
37 Pat Regan 2011-04-25
ZSH にはそれなりの速度低下がありますが、もし Last Login:
行が表示される前にターミナルウィンドウが空白になっているのを見つけた場合、速度の改善を見るためにログファイルをクリアする必要があるでしょう。これは OSX Lion の時点ではまだ問題であり、数ヶ月ごとに行う必要があります。お恥ずかしい話ですが、私は知っています
コマンドは
sudo rm -rf /private/var/log/asl/*.asl
もちろん、この記事を事前に読んでおく必要があります そして、sudo rm
と書かれているものを実行することは考えておく必要があるので、何が起こっているのかを正確に知っておく必要があります。私は唯一のZSHのあなたの使用は、開始するコマンドラインを使用してあなたの能力を証明するので、ここにこれを置く
30 kylehotchkiss 2012-06-15
私の最大の改善点は、plugin=()セクションから項目を削除したことです。github’ と ‘brew’ プラグインの読み込みが非常に遅くなります
起動時間を記録するために ‘/usr/bin/time zsh -i -c exit’ を使っていましたが、 compinit
は私にとって十分な違いがあるようには見えません
他の人がスピードアップのためにやっていることを聞いてみるといいですね
13 xer0x 2011-04-11
プリインストールされている/bin/zsh
を使っているのか、それとも別のものを使っているのか?私が尋ねるのは、私がfinkを通してインストールしたzshは、zsh templatesが含まれているため、ひどく遅く起動しますが、バニラはすぐに起動します
明示的な dumpfile (compinit -d dumpfile
) を使って実行すると速くなりますか?マニュアルページにはそのように書かれています
compinitの次の呼び出しは、完全な初期化を行う代わりにダンプされたファイルを読み込みます
8 Joey1978 2011-01-24
これで oh-my-zsh はステータスを問い合わせる前に特別な git 設定オプション oh-my-zsh.hide-status をチェックするようになりました。というわけで実行してみましょう
git config oh-my-zsh.hide-status 1
問題のあるリポジトリに
6 Artem Tikhomirov 2013-09-17
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でした。誤って大きな塊をコマンドとしてターミナルに貼り付けてしまう可能性は非常に高く、履歴もすぐに肥大化してしまいます (ただし、これは明らかに非常に破壊的であるため、非常に避けるべきことです)
5 Steven Lu 2014-12-09
テーマ「af-magic」を使っていました
ミューズ」に切り替えることで解決しました
~/.zshrcを編集して、その行を修正してください
#ZSH_THEME="random"
#ZSH_THEME="af-magic"
ZSH_THEME="muse"
2 mika 2013-10-31
これらは私がシェルの起動速度を最適化し、コマンド実行時のラグを減らすために使用した手順です
- あなたがpowerlevel9kを使用している場合、私はすぐにpowerlevel10kに切り替えることをお勧めします
Powerlevel10kはZshのテーマです。それは、スピード、柔軟性とアウトオブボックスの経験を強調しています。これは、人気のあるPowerlevel9k zshテーマの再実装です。それは同じ構成を与えられた全く同じに見えますが、10-100倍速くプロンプトをレンダリングします。スタックのあらゆるレベルで最適化されており、オリジナルの 4 倍の速さでレポをスキャンできる libgit2 のパッチ版を使用するまでに至るまで、すべての段階で最適化されています。インスタントプロンプトのような機能を持つテーマに起因していなくても、Zsh の起動ラグを除去することができます
- 環境設定 -> プロファイル -> 一般 -> コマンドに移動し、ログインシェルの代わりにコマンドというオプションを選択し、その近くのボックスに以下のコマンドを貼り付けます
login -pfq username /usr/local/bin/zsh -il
新しいタブを起動しても最終ログイン時間が表示されないようになりました。もし /usr/local/bin/zsh に zsh がない場合は brew を使って zsh をインストールする必要があります。mac で提供されているデフォルトの zsh は /usr/bin/zsh にあり、5.2 のような古いバージョンを使っている可能性があります
- zsh での貼り付けを高速に行うには、ターミナルで以下のコマンドを実行します
mkdir -p $ZSH_CUSTOM/lib && touch $ZSH_CUSTOM/lib/misc.zsh
- ポイント2でログイン時間の遅さは解消されているはずですが、念のため以下のコマンドを実行してみてください。しかし、念のために以下のコマンドを実行してください
mkdir -p .hushlogin
- あなたが使用しているかもしれないプラグインのトンがあります。これらのプラグインを指摘して削除する必要があります。このためには、zsh プロファイリングが必要になります。詳細については、このリンクに従ってください
Profiling zsh startup time
1 Shubham Jain 2020-03-28
~/.oh-my-zsh/plugins/ディレクトリをクリアしてからは、本当にスピードアップしました。この中には使われていないプラグインがたくさん入っていました
0 pinguinjkeke 2016-03-22
以下を ~/.zshenv に追加します
skip_global_compinit=1
0 FacePalm 2018-11-14