※この記事は全面的に誤っていたので修正されました。
そして、修正後の結果は極めて当然の話なので情報的価値がないです。
ふとruntimeを用いてスクリプトを読み込む場合と、autoload関数呼び出し時のスクリプトのautoloadで速度に違いがあるのか気になったので計測してみた。
速度計測にはLeafCage/laptime.vimを使用した。
autoload
let lt = laptime#new() call speed1#nop() call lt.lap() call speed2#nop() call lt.lap() call speed3#nop() call lt.lap() call speed4#nop() call lt.lap() call speed5#nop() call lt.lap() call speed6#nop() call lt.lap() call speed7#nop() call lt.lap() call speed8#nop() call lt.lap() call speed9#nop() call lt.lap() call speed10#nop() call lt.end()
TOTAL LAP 1: 0.003668 0.003668 2: 0.007119 0.003452 3: 0.010381 0.003262 4: 0.013674 0.003293 5: 0.017192 0.003517 6: 0.020612 0.003421 7: 0.025109 0.004497 8: 0.028710 0.003600 9: 0.032110 0.003400 10: 0.037759 0.005649
runtime
let lt = laptime#new() runtime autoload/speed1.vim call lt.lap() runtime autoload/speed2.vim call lt.lap() runtime autoload/speed3.vim call lt.lap() runtime autoload/speed4.vim call lt.lap() runtime autoload/speed5.vim call lt.lap() runtime autoload/speed6.vim call lt.lap() runtime autoload/speed7.vim call lt.lap() runtime autoload/speed8.vim call lt.lap() runtime autoload/speed9.vim call lt.lap() runtime autoload/speed10.vim call lt.end()
TOTAL LAP 1: 0.007248 0.007248 2: 0.013605 0.006357 3: 0.019803 0.006198 4: 0.027628 0.007826 5: 0.034176 0.006548 6: 0.040779 0.006603 7: 0.046969 0.006190 8: 0.053571 0.006602 9: 0.060535 0.006964 10: 0.067262 0.006728
2度読み込みされている分、:runtime のほうが遅かったです