シェル (新しいターミナル、新しい tmux ペイン/ウィンドウ) の読み込みが遅いのはなぜですか?

シェル (新しいターミナル、新しい tmux ペイン/ウィンドウ) の読み込みが遅いのはなぜですか?

新しいターミナルを開くと、シェルが読み込まれるまでに数秒かかります。tmux で新しいペインまたはウィンドウを開くと、さらに 1 秒長くかかることもあります。遅延は約 3 秒です。

私は、oh-my-zsh と ohmyzsh プラグイン (git、vi-mode、history-substring-search) を備えた zsh を使用しています。

私のパスは次のようになります:

/home/alec/.nvm/versions/node/v14.6.0/bin:/home/alec/.composer/vendor/bin:/home/alec/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/alec/code/bin

以前、パス上に git リポジトリがあると問題になるのではないかと考えていました。そのパスの最終場所は~/code/binで、その中にデータベース~/binがありました。現在はディレクトリが にあります(これにより、シェルが実行可能ファイルを探すのを防げると思われます) が、これによってパフォーマンスは向上していません。.git.git~/code

他に推測して確認できる可能性や、実行/調査すべき論理的なトラブルシューティング手順はわかりません。

助言がありますか?

答え1

set -xシェルの起動中に実行されている内容に関する多くの出力を取得するには、上部とset +x下部に以下を追加します~.zshrc。(デバッグ プロセス全体を通して、そのファイルを別のウィンドウ/ターミナル/エディターで開いたままにしておくと便利です)

出力全体の中で何が適切で何が問題なのかを知るのは難しいかもしれませんが、見覚えのあるものに気付いたら、そこから始めるのが良いでしょう。私の場合、nvm「ノード バージョン マネージャー」に関する行が多数ありました。ファイルnvm内の行を無効にすると.zshrc、シェルの起動時間が 2 秒短縮されます。

nvmパフォーマンスの負担なく使用するには、https://www.ioannispoulakas.com/2020/02/22/how-to-speed-up-shell-load-while-using-nvm/いくつかの解決策を提案します。

関連情報