小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

把Vi改造成Vim的作者,現(xiàn)在又讓Vim快了70倍

 風(fēng)聲之家 2020-01-08

Vim 編輯器的創(chuàng)建者 Bram Moolenaar 最初開發(fā)了 Vim 以作為 Vi 編輯器的“增強(qiáng)版”,而現(xiàn)在,他希望通過一個(gè)名為 Vim9 的實(shí)驗(yàn)性分支對(duì) Vim 本身進(jìn)行改進(jìn)。

Bram Moolenaar 表示,Vim9 是 Vim 的一個(gè)實(shí)驗(yàn)性分支,旨在探索使 Vim 腳本更好且更快執(zhí)行的方式。這也是除“彈出窗口(Popup Windows)”和“文本屬性(Text Properties)”之外,開發(fā)者呼聲最大的功能需求。

為了能更快執(zhí)行 Vim 腳本,Bram 思考了很多并得出如下結(jié)論:當(dāng)前調(diào)用和執(zhí)行函數(shù)的方式(帶有用于參數(shù)和局部變量的字典)永遠(yuǎn)不會(huì)很快。

如果能夠使速度快兩倍,那么 Vim 的性能將會(huì)有明顯的改進(jìn)。畢竟調(diào)用和執(zhí)行每一行函數(shù)的開銷十分高。

Bram 認(rèn)為只有通過一種與舊方法類似但屬性不一樣的新方法來定義函數(shù)才能使速度變快:

  • 參數(shù)只能通過名稱(name)使用,而不能通過 a: dictionary 或 a:000 列表的形式使用

  • 局部變量在 l: dictionary 中不可用

  • 解決一些影響速度的問題,例如異常處理細(xì)節(jié)

對(duì)于上面的思路,Bram 提供了概念驗(yàn)證代碼。到目前為止,對(duì)于一個(gè)簡單的運(yùn)行循環(huán)的 Vim 腳本,Vim 需要五秒鐘的時(shí)間,Vim9 則可以在 0.07 秒內(nèi)運(yùn)行它,與 Lua 腳本的時(shí)間相同,并且比 Python 更快。

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

在更相關(guān)的代碼片段中,Vim9 可以在 0.19 秒內(nèi)運(yùn)行腳本,而 Vim 的時(shí)間是 0.85 秒。

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

關(guān)于 Vim9 的具體實(shí)現(xiàn)思路和細(xì)節(jié)請(qǐng)查看其 GitHub 倉庫,這些工作經(jīng)過驗(yàn)證有效后會(huì)被合并到 Vim 中。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多