ZSHは、新しいターミナルウィンドウの作成から準備が整うまで約1秒半かかります。犯人はcompinit
だと思います。
compinit,
に関する適切なドキュメントを見つけることができませんでしたが、.zcompdump
などのファイルに必要なものをすべてキャッシュしているようです。
スピードアップのコツは?
oh-my-zsh
は私のラップトップで起動するのに約1.5秒かかっていました。 約0.25秒に短縮するために実行した手順の一部を書きました 。
別の親切な魂 私の変更をあなたのコピーに統合するために必要なステップの要約 of oh-my-zsh。
最大の問題は、compinit
が、fpathが完全に定義された後に1回だけではなく、大量の余分な時間と呼ばれていたことです。これらの変更は、githubのoh-my-zsh
のブランチで行いました。変更はgithubで議論されており、一部の人にとってはうまく機能しているようです。近い将来、変更がoh-my-zsh
にマージされることを願っています。
ZSHはそれ自体がスローダウンの公平なシェアを持っていますが、Last Login:
行が表示される前にターミナルウィンドウがしばらく空白になる場合、速度の向上を確認するにはログファイルをクリアする必要があります。これはOSX Lionの時点ではまだ問題であり、数か月ごとに実行する必要があります。ラメ、知ってる。
コマンドは次のとおりです。
Sudo rm -rf /private/var/log/asl/*.asl
もちろん youneedfor this article before preread なので、何が起こっているかを正確に知ることができます。 Sudo rm
について考える必要があります。 ZSHを使用することで、開始するコマンドラインの能力が証明されるので、ここではこれだけを示します。
私の最大の改善は、plugin =()セクションから項目を削除したことです。 「github」および「brew」プラグインのロードは非常に遅いです。
また、to-git
にエイリアスを設定した hub を削除し、プロンプトも高速化しました。
起動時間を記録するために「/ usr/bin/time zsh -i -c exit」を使用してきましたが、compinit
を使用しても十分な違いはないようです。
それをスピードアップするために他の人が何をしているのかを聞くのは素晴らしいことです。
プレインストールされた/bin/zsh
または別のものを使用していますか?私がfinkを介してインストールしたzshは zshテンプレート が含まれているために起動が非常に遅くなるので、バニラはすぐに起動するので、私は尋ねます。
明示的なダンプファイル(compinit -d dumpfile
)で実行すると、処理が速くなりますか?マニュアルページには、
次のcompinitの呼び出しでは、完全な初期化を実行する代わりに、ダンプされたファイルを読み取ります。
Zshはそれ自体で約0.1秒で起動しますが、これで十分です。 50,000個のコマンド履歴マークに近づくと、最初のプロンプトをロードするのに3秒ほどかかることに気づきました。
起動が遅い他の理由を皆さんがどのように見つけているのかはわかりませんが、私のものはまさに私の最初の推測でした。 mv ~/.zsh_history zsh_history_backup
とbam、3秒の起動が0.1秒の起動になりました。不思議なことに、/usr/bin/time /bin/zsh -i -c exit
は、履歴の読み込みにかかる時間をキャプチャできません。
ただし、zshの履歴に数万のコマンドがない場合は、そうではありません。ぼくの ~/.zsh_history
1.8MBの測定値。誤って大量のデータをコマンドとしてターミナルに貼り付ける可能性があります。これは、履歴をすぐに膨らませます(これは、明らかに非常に破壊的である可能性があるため、実行するのを避けるために非常に多くのことです)。
ステータスを照会する前に、oh-my-zshが特別なgit設定オプションoh-my-zsh.hide-statusをチェックするようになりました。だから走る
git config oh-my-zsh.hide-status 1
問題のあるリポジトリ。
「af-magic」というテーマを使用していた
「ミューズ」に切り替えることで問題は解決しました。
〜/ .zshrcを編集し、その行を変更します。
#ZSH_THEME="random"
#ZSH_THEME="af-magic"
ZSH_THEME="muse"
これらは、シェルの起動速度を最適化し、コマンド実行の遅延を減らすために使用した手順です-
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などの古いバージョンを使用している可能性があるため、iTermまたはoh-my-zshと一緒に使用すると速度が遅くなる可能性があります。
mkdir -p $ZSH_CUSTOM/lib && touch $ZSH_CUSTOM/lib/misc.zsh
mkdir -p .hushlogin
以下を〜/ .zshenvに追加してください
skip_global_compinit=1
〜/ .oh-my-zsh/plugins /ディレクトリをクリアした後、速度が大幅に向上しました。内部には未使用のプラグインがたくさんありました。