zsh 别名会降低终端性能吗?

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类型的别名可以通过某种方式改进吗(例如,使它们成为单行)?

答案1

拥有许多别名和小函数不会对运行时性能产生任何可测量的影响。

拥有很多大的函数将影响启动交互式 shell 所需的时间。 shell 必须解析所有代码。除非您的初始化文件位于慢速网络文件系统上,否则您不太可能注意到它。如果这是一个问题(再一次,甚至不用担心它,除非它确实是一个问题),请确保您的大型函数是自动加载和字节编译的(对于 zsh),或者将它们分成单独的脚本(对于任何shell,对于任何大型函数来说这通常都是一个好主意,这样它就可以单独使用而无需先加载交互式 shell)。

作为比较,如果您使用 bash 的智能完成功能,它会在 bash 启动时加载大约 60k 行代码。因此,为了在启动时间上产生明显的差异,您必须拥有大量自己的代码。

相关内容