Cover image

Vim性能测试工具

Feb 11, 2016

本文内容主要来自于翻译”Vimberlin.de”上的一篇Profiling Vim。 并且其中附加本人的一些测试说明等。 主要提供了一些关于Vim的Built-in的性能测试工具。

如何查看Vim的工作日志

这里我们需要利用-V来开启Vim的verbose模式。

$vim -V filename

这样会将vim的运行时加载的插件或者执行的脚本命令详细的显示出来并记录在messages里边。 记录的详细程度跟verbose level的值有关,默认值是10。 我们可以通过命令:messages来显示该记录内容。

关于 Verbose Level

如下命令

$vim -V20/tmp/vim.log filename

是指将vim的运行记录以20等级的verbose level存放到/tmp/vim.log中。 Ps:需要注意的是,参数-V20与log文件之间不能有空格,有空格的话就成了vim打开两个文件了。 若制定的log存放位置,运行的时候就不再显示具体内容,而是都写入到log文件中。 否则的话,所有信息都将显示在屏幕中。

其中Verbose Level有如下几个类别:

需要注意的是,这些记录并不像真正的日志那样带有timestamps

在runtime修改verbose信息

如果想在vim运行时修改verbose的存放位置或者修改verbose level的话,可以用如下命令

:set verbosefile=newlog
:set verbose=15

vim 启动时间

如果想查看vim启动时间的详细内容,可以这样

vim --startuptime /tmp/vimstartuptime.log filename

该参数与-V参数不同,参数后边文件位置与参数直接必须要有空格。 另外存放log的文件位置不能省略,否则会直接把你要打开的filename当做log文件来记录信息。

不过该命令只支持7.2.269及以后的版本

vim 的profile 模式

XXX: profile模式需要vim在编译的时候带+profile的标志。 Ps: 如果不确定是否含有+profile标志位的话可以在vim里用:version来查看。

profile start /tmp/vim.log
profile func *
profile file *

这样当vim关闭的时候会生成vim运行时详细的性能分析报告。 参见http://stackoverflow.com/questions/12213597/how-to-see-which-plugins-are-making-vim-slow, 我们可以在这几条命令之后执行使vim运行缓慢的操作,从而可以查找到问题的元凶。

我们也可以在vim启动的时候开启profile模式

vim --cmd 'profile start profile.log' --cmd 'profile func *' --cmd 'profile file *'

:help profile里边会提醒到:

profile on syntax

XXX: 需要vim在编译的时候带+profile的标志。

:syntime on
:syntime report

用来报告vim在匹配当前文件语法的耗时。 该命令支持7.4及以后版本。

insert timestamps

参见http://stackoverflow.com/questions/1687799/profiling-vim-startup-time

vim -V 2> >( ruby -n -e 'puts "#{Time.now.to_f}: #{$_}"' > /tmp/profile.log )

-> only working at the beginning tip is very old (2009) - maybe vim changed since then

fifo

-> work around: use fifo -> but vim closes the file -> use while loop

mkfifo ./startuptime
vim -V./startuptime

while true;  do cat startuptime | ruby -n  -e 'puts "#{Time.now.to_f}: #{$_}"' >> /tmp/vilog2; done

11 Feb 2016

Post by: MetaCoder