为什么微软 WSL 的默认终端输入体验比其他同类的应用好

发布时间:2023-04-04 12:14:11 作者:你的糖掉了 阅读量:5762

一名开发者(下用Nick代称)在Windows Terminal的GitHub repo中发表了一个不是反馈问题的issue——他只是好奇该终端拥有这种如此顺滑输入的效果是如何实现的。

Nick觉得这种顺滑感是其他Windows应用都不具备的,甚至是最轻量的notepad.exe都未能提供这种输入体验。他还问到,这种UI增强功能将来是否会应用于所有Windows应用程序。

很快,负责此项目的Windows开发团队成员(@miniksa)对Nick的疑问进行了解答。

miniksa表示,保持在WSL(Windows Subsystem for Linux)默认终端输入内容的速度比其他应用快,这实际上就是他们唯一的工作!除此之外,也可能是因为他们必须使用Windows最旧和最低级别的API来完成此项工作。

WSL的默认终端不像Electron等框架那样涉及到许多其他的层或框架,它有一个并不特别的裸窗口,并且没有任何附加组件。他们会从窗口消息(window messages)而不是某种事件框架((WPF, WinForms, UWP, Electron))来处理键入的内容,而这些内容是通过内核传输过来的。接着,他们使用GDI的PolyTextOut将文本直接转储到窗口而不带多余的装饰。

miniksa解释道,notepad.exe确实很轻量,不过在其窗口上也具有多个控件,并且可能在编辑控件中使用某种库、框架来确定其文本布局(也可能正在使用其他库或框架进行国际化支持...),这些都使得它们的输入速度比不上WSL默认终端。当然,WSL也需要进行权衡取舍,它不像其他应用那样提供完全的国际化支持。

为什么要这样做?第一,conhost.exe已十分陈旧。它必须使用所有内容的裸机底层,因为它是在创建其他大多数框架之前创建的。第二,它需要保持尽可能底层的级别,而且它是用C/C++编写的,它需要尽可能保持底层的状态以方便提供给第三方使用。

至于其他Windows应用是否有机会用上这种顺滑的输入效果,miniksa觉得几乎是没机会。这些应用能够以一种简单的方式用任何一门语言来调用一种方法和布局文本(layout text),而无需手动计算像素或关心它们的字体该采用哪种样式。而恰好miniksa手动计算像素、滑动区域和数学应用区域等的方式正是使得WSL默认终端输入速度更快的原因。

***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

网友评论


评论时间:2024-03-18 18:30:02

3.点击“开始”按钮,进入系统设置便宜不关机的云主机 页面服务器机柜尺寸规格表 开始”按钮,进入系统设置页面

回复

评论时间:2023-12-27 06:30:01

虚拟主机360怎么用 游戏服务器搭建教程:本教程是为玩家准备的,你可以通过学习来掌握如何在低价服务器租用 游戏中快速创建一个属于自己的游戏服务器

回复

评论时间:2023-07-29 22:30:02

14.接着在弹出菜香港虚拟主机能干什么 单中点“属性”项服务器机柜组装图 “属性”项

回复

评论时间:2023-06-21 08:30:02

为了提高数据库系统的性能和可靠性,人们不断地开发新的数据库产品,其中最为常用的还是SQLSe虚拟主机和服务器推荐 rver云主机购买教程 ,其中最为常用的还是SQLServer

回复

  热门标签

极速云服
Catfish(鲶鱼) Blog V 4.7.3