Windows Terminal 性能再惹爭(zhēng)議,難度相當(dāng)于博士項(xiàng)目?
游戲引擎開發(fā)者和 Handmade Hero 項(xiàng)目的作者 Casey Muratori 在 Windows Terminal(以下簡(jiǎn)稱為 WT)的 GitHub 倉庫中發(fā)布了一個(gè)關(guān)于 WT 性能的 issue(Extremely slow performance when processing virtual terminal sequences),引發(fā)了激烈的討論。
Casey Muratori 在 issue 中指出,WT 在渲染彩色字符時(shí)比單色字符慢約 40 倍,并附上了用來測(cè)試的 benchmark 程序 TermBench。之后 Casey Muratori 與 WT 的成員在 issue 下展開了討論,然而并沒有得出統(tǒng)一意見,Casey Muratori 被認(rèn)為 “把一個(gè)可以作為博士研究項(xiàng)目的問題看得過于簡(jiǎn)單”,并且該 issue 隨后被關(guān)閉。
此后,Casey Muratori 直接在其 Handmade Hero 頻道中發(fā)布了一個(gè)名為 “How fast should an unoptimized terminal run?” 的視頻,視頻中給出了相應(yīng)的參考實(shí)現(xiàn) RefTerm 作為對(duì)比,并詳細(xì)描述 WT 的性能問題。該 RefTerm 支持回滾、換行、Unicode組合、RTL-over-LTR、多色字體、實(shí)時(shí)改變字體,渲染速度達(dá)幾千 FPS。
不過,也有開發(fā)者對(duì) Casey Muratori 在視頻中實(shí)現(xiàn)的 RefTerm 提出了質(zhì)疑,其看法主要包括:
構(gòu)建時(shí)使用 /GS- /Gs999999set 命令行參數(shù),這會(huì)禁用安全功能并且影響性能,而終端應(yīng)用程序的主要工作是解析不受信任的輸入。
該應(yīng)用程序使用 0.5% 的 CPU 和高達(dá) 14% 的 GPU 來顯示閃爍的光標(biāo),這并不高效。并且 RefTerm 應(yīng)用程序在空閑時(shí)使用 351 MB 內(nèi)存(使用 4k 顯示器運(yùn)行),而終端可接受的內(nèi)存使用量約為 10-20 MB。
可靠性不足。終端是一個(gè)高風(fēng)險(xiǎn)的應(yīng)用程序,因?yàn)樗仨毥馕龃罅坎皇苄湃蔚奈谋荆?RefTerm 中運(yùn)行 splat refterm_debug_msvc.pdb 會(huì)導(dǎo)致 RefTerm 立即凍結(jié)并占用 100% 的 CPU。應(yīng)用程序窗口無法關(guān)閉,只能通過任務(wù)管理器殺死。
目前,一個(gè)該 issue 的克隆已經(jīng)發(fā)布(原 issue 已關(guān)閉),并且同時(shí)打開了一個(gè)添加基于字形圖集的 DxRenderer 的 issue,感興趣者可以前往了解最新信息。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:Windows Terminal 性能再惹爭(zhēng)議,難度相當(dāng)于博士項(xiàng)目?
本文地址:https://www.oschina.net/news/149135/wt-performance-issue-discuss