服务器之家

服务器之家 > 正文

速度更快!Vim作者创建分支Vim9以改进Vim的性能

时间:2020-01-05 19:52     来源/作者:开源中国

Vim编辑器的创建者Bram Moolenaar最初开发了Vim以作为Vi编辑器的“增强版”,而现在,他希望通过一个名为Vim9的实验性分支对Vim本身进行改进。

Bram Moolenaar表示,Vim9是Vim的一个实验性分支,旨在探索使Vim脚本更好且更快执行的方式。这也是除“弹出窗口(Popup Windows)”和“文本属性(Text Properties)”之外,开发者呼声最大的功能需求。

为了能更快执行Vim脚本,Bram思考了很多并得出如下结论:当前调用和执行函数的方式(带有用于参数和局部变量的字典)永远不会很快。如果能够使速度快两倍,那么Vim的性能将会有明显的改进。毕竟调用和执行每一行函数的开销十分高。

Bram认为只有通过一种与旧方法类似但属性不一样的新方法来定义函数才能使速度变快:

参数只能通过名称(name)使用,而不能通过a: dictionary或a:000列表的形式使用

局部变量在l: dictionary中不可用

解决一些影响速度的问题,例如异常处理细节

对于上面的思路,Bram提供了概念验证代码。到目前为止,对于一个简单的运行循环的Vim脚本,Vim需要五秒钟的时间,Vim9则可以在0.07秒内运行它,与Lua脚本的时间相同,并且比Python更快。

let sum = 0for i in range(1, 2999999)let sum += iendfor

howtime in secVim old5.018541Python0.369598Lua0.078817Vim new0.073595

在更相关的代码片段中,Vim9可以在0.19秒内运行脚本,而Vim的时间是0.85秒。

let totallen = 0for i in range(1, 100000)call setline(i, '' .. getline(i))let totallen += len(getline(i))endfor

howtime in secVim old0.853752Python0.304584Lua0.286573Vim new0.190276

关于Vim9的具体实现思路和细节请查看其GitHub仓库,这些工作经过验证有效后会被合并到Vim中。

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
返回顶部