Terminal
zsh 別名會降低終端性能嗎?
我真的使用了別名,並且我已經開始創建一些僅由一種
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
類型的別名能否以某種方式改進(例如,使它們成為單行)?
擁有許多別名和小函式不會對執行時性能產生任何可衡量的影響。
擁有許多大型函式會影響啟動互動式 shell 所需的時間。shell 必須解析所有程式碼。除非您的 init 文件位於慢速網路文件系統上,否則您不太可能注意到它。如果這是一個問題(再一次,除非它確實是一個問題,否則不要擔心),確保你的大函式是自動載入和字節編譯的(對於 zsh),或者將它們拆分成單獨的腳本(對於任何shell,這通常對於任何大型函式都是一個好主意,這樣它就可以在不首先載入互動式 shell 的情況下單獨使用)。
作為一個比較點,如果您使用 bash 的智能補全,它會在 bash 啟動時載入大約 60k 行程式碼。因此,要在啟動時間上產生明顯的差異,您必須擁有自己的那麼多程式碼。