I started noticing a considerable delay whenever opening a new terminal or connecting to another server. After profiling my Bash profile with a few time
commands, I discovered that the slowest part was the loading of the completion file:
$ time ~/.bash/.bash_completion
real 0m0.457s
user 0m0.183s
sys 0m0.276s
The Bash completion script I use is from http://bash-completion.alioth.debian.org. I found that there is an existing bug for this issue #467231: bash_completion is big and loads slowly; load-by-need proposed and someone has submitted a script to speed up Bash completion load time called dyncomp.sh.
This is a one-time script, which only needs to be run when you install your Bash completions or modify them. It loads your completions and moves the completion functions out of the script and into a separate directory. They are only loaded when needed. This speeds up the load time considerably and new terminal windows open up instantly!
$ time ~/.bash/.bash_dyncompletion
real 0m0.020s
user 0m0.018s
sys 0m0.002s
You can visit my GitHub dotfiles repository for the latest version of my Bash profile.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.