From 11.34s to 0.625s for opening a .rb file in Vim
source link: https://www.devroom.io/2012/03/21/from-11-34s-to-0-625s-for-opening-a-rb-file-in-vim/?utm_campaign=Feed%3A+ariejan+%28ariejan%7Cdevroom.io%29
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
From 11.34s to 0.625s for opening a .rb file in Vim
Would you believe me if I told you that opening a simple Ruby file on my 2011 MacBook Pro takes 11.34 seconds?
To test this, I’ve used this command:
$ vim --startuptime log-before.txt app/models/user.rb
This command will time everything that Vim does until the file is ready for you to edit down to the millisecond. This is a great way to find out what’s slowing things down.
I’ll highlight the most interesting parts of log-before.txt
here:
000.028 000.028: --- VIM STARTING ---
6643.597 5496.976 5496.976: sourcing /usr/share/vim/vim73/ftplugin/ruby.vim
11262.686 3963.993 3963.993: sourcing /Users/ariejan/.vim/bundle/vim-css-color/after/syntax/css.vim
11263.907 3976.912 004.334: sourcing /usr/share/vim/vim73/syntax/html.vim
11263.997 3977.361 000.449: sourcing /usr/share/vim/vim73/syntax/xhtml.vim
11340.533 000.004: --- VIM STARTED ---
These are the big spenders of loading a ruby file. Firstly there is ruby.vim
taking about 5.4 seconds to load. Then there is css.vim
taking another 3.9 seconds - and this file doesn’t even include CSS!
These two time sinking hogs are keeping me back – 11 seconds at a time.
Let’s see, vim-css-color
. This plugin shows color hashes in their actual colour. So #00f
will have a blue background. Great when editing CSS files, but not all that import. I removed vim-css-color
.
Note: the reason vim-css-color
is slow with terminal vim is that is has to pre-compile colour hashes to ther xterm escape code equivalents. This is pretty time consuming.
Next up: ruby.vim
. Why is this so bloody slow?
As it turns out, Vim has trouble finding the right ruby
for me. This can be remedied by adding the following snippet to your ~/.vimrc
. It sets a logical search path for ruby
:
if !empty($MY_RUBY_HOME)
let g:ruby_path = join(split(glob($MY_RUBY_HOME.'/lib/ruby/*.*')."\n".glob($MY_RUBY_HOME.'/lib/ruby/site_ruby/*'),"\n"),',')
endif
Again I ran my timer command (full output):
$ vim --startuptime log-after app/models/user.rb
Now look at that:
000.034 000.034: --- VIM STARTING ---
107.182 000.834 000.834: sourcing /usr/share/vim/vim73/ftplugin/ruby.vim
625.001 000.003: --- VIM STARTED ---
Yes, that is 0.625 seconds! I’m a happy ruby coder again.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK