Vimの作者は、Vimののパフォーマンスを向上させるために枝Vim9を作成します

ブラム・ムールナーのVimエディタのVimで作成されたが、もともと「強化版」のviエディタとして開発された、そして今、彼はのVim9と呼ばれる実験的な枝を通じてVimの自体を改善したいと考えています。

ブラム・ムールナーはVim9がより良いとより高速な方法を実行するには方法を模索を目的としたVimのは、Vimスクリプトの実験的なブランチです表します。これは他にある「ポップアップウィンドウ(ポップアップウィンドウ)」と「テキスト属性(テキストプロパティ)」の外、機能要件の最大の開発者の声。

より高速のVimスクリプトを実行できるようにするには、ブラムは、多くのことを考えて、以下の結論を出す:現在のコールと(パラメータとローカル変数の辞書で)道の機能を実行速くなることはありません。Vimのパフォーマンスが大幅に改善されますので、あなたは、二倍の速さにすることができます。結局のところ、関数呼び出し及び実行のオーバーヘッドの各行は非常に高いです。

ブラムは、速度増加を作るためにその唯一の新しい方法と同様の性質ではなく、定義された機能により同じ古い方法だと思います。

  • 使用したリストの形で000:辞書や:使用にはなく、スルー名(名前)によってパラメータのみ
  • ローカル変数L:辞書が利用できません
  • そのような例外処理の詳細として、スピードに影響を与える問題の一部を解決します

上記のアイデアについては、ブラムは、概念実証コードを提供します。これまでのところ、簡単な実行サイクルのためのVimスクリプトは、Vimは0.07秒、同時期のLuaスクリプトでそれを実行し、より高速のPythonよりもすることができ、Vim9を5秒かかります。

  let sum = 0
  for i in range(1, 2999999)
    let sum += i
  endfor
どうやって 秒の時間
Vimの古いです 5.018541
パイソン 0.369598
取ります 0.078817
Vimの新しいです 0.073595

より関連性の高いコード・フラグメントにおいて、Vim9スクリプトは0.19秒で実行することができ、Vimの時間は0.85秒です。

 let totallen = 0
  for i in range(1, 100000)
    call setline(i, '    ' .. getline(i))
    let totallen += len(getline(i))
  endfor
どうやって 秒の時間
Vimの古いです 0.853752
パイソン 0.304584
取ります 0.286573
Vimの新しいです 0.190276

アイデアや細部のVim9コンクリートの実現についてを参照してくださいそのGitHubのリポジトリを、これらのジョブを効果的に認証されているのVimにマージされます。

おすすめ

転載: www.oschina.net/news/112562/vim9-improved-vim-fork