zshエイリアスが端末のパフォーマンスを低下させるのですか?

zshエイリアスが端末のパフォーマンスを低下させるのですか?

私はエイリアスを使用し、1つif..elseのケースでのみ構成されたいくつかの関数エイリアスを作成し始めました。たとえば、私の実行には次のエイリアスがありますjson-server

jsp() {                                                           
        if [[ -z $2 ]]; then                                      
                json-server --watch data/db.json --port $1
        else                                            
                json-server --watch $1 --port $2        
        fi                          
} 

エイリアスが多いと端末のパフォーマンスに影響しますか?このif..elseタイプのエイリアスをどのように改善できますか(たとえば、1行にする)。

ベストアンサー1

エイリアスが多く、関数が小さくても、ランタイムパフォーマンスには測定可能な影響はありません。

たくさん所有する大きい機能は、対話型シェルを開始するのに必要な時間に影響します。シェルはすべてのコードを解析する必要があります。初期化ファイルが遅いネットワークファイルシステムにない場合、それに気付く可能性はありません。これが問題の場合(もう一度言うが、実際に問題がない限り心配しないでください)、大きな関数が自動的にロードされバイトコンパイルされていること(zshの場合)を確認するか、別のスクリプトに分割します(すべてのシェルの場合)。一般に、インタラクティブシェルを最初にロードしなくても独自に使用できるようにするための大きな機能については良い考えです。

比較のためにBashのスマートコンプリート機能を使用すると、Bashの起動時に約60,000行のコードがロードされます。したがって、開始時に顕著な違いを作成するには、独自のコードがたくさんある必要があります。

おすすめ記事