Windows Terminal 的性能有多烂

2021-07-05 12:43:45 +08:00
 h404bi

Casey Muratori 最近在 Windows Terminal 的 GitHub issue tracker 发了一个反馈—— Extremely slow performance when processing virtual terminal sequences,表达了对 WT 性能的关注,他还写了一个 benchmark 程序 TermBench 来测试 WT 的渲染性能具体有多差(根据 Casey 表述,达到了惊人的 2 fps)。

issue 中 WT 的 member 们不断回复讨论“说明解释”运行慢的理由,后来为了避免讨论失控,给出了有意思的「 because we've made it hard, not because of some intrinsic quality of the universe. 」结论。不过还是未能说服 Casey,进一步激烈的讨论后 Casey 得到了「 what you’re doing is describing something that might be considered an entire doctoral research project in performant terminal emulation as “extremely simple” somewhat combatively. 」的论断,被认为把事情看得过于简单,因为终端性能这件事能作为 PhD 项目了。

Casey 当然不服,但 issue 已经被锁了。于是他在他的 Handmade Hero 频道上“罕见地”发布了一名为 How fast should an unoptimized terminal run? 的与 HandmadeHero 无关的视频(还调侃地写上了 Terminal PhD Dissertation )来论述 WT 到底有多慢,它能有多快:

https://www.youtube.com/watch?v=hxM8QmyZXtg

除了视频,还给出了相应的参考实现 RefTerm: https://github.com/cmuratori/refterm 作为对比。

Hacknernews 上也有对此的讨论串 https://news.ycombinator.com/item?id=27725133,虽然并没有太多讨论,但也有些挺有意思的,比如「 ... if your team lacks anyone with that intuitions, your team will spend their time finding “explanations” for the bad performance instead of fixing it. 」。

整个事件看下来,我对最近发布的 Windows 11 也有了新的感慨——无论再怎么更新,它依旧是一座大屎山,有些东西就是长年无法改变的,看看这个回复回复就知道。(逃)


Casey Muratori 是谁?

Casey Muratori 是一名经验丰富的游戏引擎开发者,参与过多款知名游戏的研发。他也是 Handmade Hero 项目的作者,如果你不了解 Handmade Hero,可以去搜索了解下。这个非常硬核的教学向项目发起于 2014 年,目标是不使用任何引擎,从头手写每一行代码来学习做出一款游戏。每周进行更新,至今已坚持近 7 年之久,超过 600 集视频,还衍生出如 4coder 等实际生产可用的项目。

13834 次点击
所在节点    Windows
80 条回复
MaverickLee
2021-07-06 11:23:06 +08:00
@lxrmido #55 没有加入 Windows Insider 都能自动推送并升级???
myCupOfTea
2021-07-06 11:34:08 +08:00
window terminal 开源的吧,完全可以提 pr 啊
haiyang1992
2021-07-06 11:37:58 +08:00
我就想问有没有人遇到过 WT 经常打字几秒没响应的情况,基本都在 WSL2 环境里
u011631336
2021-07-06 11:43:21 +08:00
为啥我觉得挺好用的
learningman
2021-07-06 12:01:26 +08:00
@lxrmido #54 Win 11 又没推送,除非说你是在 Dev Channel
但是如果你在 Dev Channel,那生活不本来就是充满惊喜。。。
bxb100
2021-07-06 12:07:06 +08:00
总结就是提出问题很简单, 解决很难, 这波我谁都不站
subpo
2021-07-06 12:28:34 +08:00
不然用啥呢,颜值就是正义
libook
2021-07-06 12:33:09 +08:00
对于微软的产品风格已经习惯,现在肯拥抱开发者和开源社区已经是不小的进步了,慢慢来呗。

我在 Windows 下是用 Cygwin 装 XServer,然后在 WSL2 下开 Terminator,做了个脚本可以在 Windows 下一键打开,使用体验几乎和在 Windows 下开程序差不多,支持窗口停靠操作。

要说终端模拟器还是 Linux 下的成熟,毕竟打磨了那么多年。
我是觉得关于 WT,与其说是一个产品,不如说是一个营销(不是贬义),毕竟 Windows 自带的 CMD 和 PowerShell 一直都被各种嫌弃,现在出了个 WT 相当于是给广大开发者表决心,就是愿意做出改变。

最后很多人都指出来了,WT 是个 MIT 许可证的开源项目,MIT 给了使用者自由,但也同时进行了免责,很多 MIT 项目都会跟使用者说:“我们没有任何义务来满足任何人的需求。”所以如果现有维护人员没有修改的意愿,提出问题的人也可以尝试自己做解决方案然后提 PR,如果 PR 也不被接受的话也完全可以保留授权信息做分支项目,像某著名赛博出国项目就是这样,一波三折分出来几代独立项目,按照各自的意愿分别维护,这也是开源带来的好处之一。
DeWjjj
2021-07-06 12:35:42 +08:00
你可以选择 powershell,比 terminal 强很多。
我是因为 touch 不了,不想写 echo>而选择了 ni 。
wms
2021-07-06 13:56:00 +08:00
@libook 微软商城里面有个 X410 不错,可以省掉 cygwin
binbinyouliiii
2021-07-06 13:58:10 +08:00
@wms #70 下一版本自带 xserver
wms
2021-07-06 14:01:30 +08:00
@binbinyouliiii 那里的消息,这么爽,那岂不是更不需要 WT 了
binbinyouliiii
2021-07-06 14:02:52 +08:00
lxrmido
2021-07-06 14:10:21 +08:00
@MaverickLee
@learningman
三年前加入了 insider preview 计划,两年前点了退出,至今未能退出……
确实经常见识到各种惊喜 bug……
generic
2021-07-06 14:17:54 +08:00
@keepeye 系统自带不会做这些花哨功能的。gnome, kde 自带的终端也没有。趁早转第三方软件吧。
keepeye
2021-07-06 14:29:04 +08:00
@generic 这不算什么花哨功能吧?很实用的一个功能,其他终端软件对 wsl 兼容又不太好
IgniteWhite
2021-07-06 20:46:01 +08:00
@generic KDE 自带 Konsole 就能快捷键清屏啊,Gnome Terminal 也可以。不要云

@keepeye 的确是基础功能。说图形渲染花哨还差不多
hronro
2021-07-06 22:46:57 +08:00
现在最快的 terminal 应该是 Alacritty ?
有没有人拿 Alacritty 和 WT 做下 benchmark 来对比?
timpaik
2021-07-29 11:46:33 +08:00
@hronro alacritty 的 github 有 benchmark 链接
zeni123
2021-09-10 21:02:09 +08:00
feel free to raise a pull request 。 开源项目有 idea 就自己开 PR

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/787595

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX