Shougo/vimproc.vim — pull request #96 by ichizok (2013-12-10 14:20:53+00:00)
Title: Improved vimstack

xdigit ↔ char[2] の変換くらいなら、関数呼ばずに直接変換した方が効率的と考え
変換テーブル作りましたが、あまり差が出ませんでした。
一応、速くなるにはなったので提出しますが、微妙です。

CentOS 6.4 x86_64 / Core i7 2.8GHz / 1.5 GB mem

100kBのinput
```vim
call vimproc#version()
let s:cont = ''
for k in range(1, 10000)
let s:cont .= '0123456789'
endfor
let s:range = range(0, 100)
for n in range(1, 10)
let s:start = reltime()
call vimproc#system(['cat'], s:cont)
let s:elapse = reltime(s:start)
echomsg reltimestr(s:elapse)
endfor
```

```
before:
1.332900
1.313428
1.327629
1.327030
1.326842
1.333658
1.332212
1.306688
1.346183
1.324776

after:
1.112246
1.112698
1.110920
1.113629
1.116176
1.112010
1.111692
1.114366
1.104909
1.109893
```

約1.5MBのoutput
```vim
call vimproc#version()
let s:fname = [
\ expand('~/trunk/vim/src/eval.c'),
\ expand('~/trunk/vim/src/normal.c'),
\ expand('~/trunk/vim/src/edit.c'),
\ expand('~/trunk/vim/src/option.c'),
\ ]
for n in range(1, 10)
let s:start = reltime()
call vimproc#system(['cat'] + s:fname)
let s:elapse = reltime(s:start)
echomsg reltimestr(s:elapse)
endfor
```

```
before:
1.221009
1.213059
1.216251
1.217136
1.217938
1.210003
1.218599
1.224620
1.220984
1.219481

after:
1.095410
1.119757
1.110213
1.109122
1.108827
1.095968
1.100259
1.098698
1.097239
1.100243
```