为什么微软 WSL 的默认终端输入体验比其他同类的
一名开发者(下用Nick代称)在 Windos Terminal的GitHub repo中发表了一个不是反馈问题的 issue ——他只是好奇该终端拥有这种如此顺滑输入的效果是如何实现的。
Nick觉得这种顺滑感是其他Windos应用都不具备的,甚至是最轻量的 notepad.exe 都未能提供这种输入体验。他还问到,这种 UI增强功能将来是否会应用于所有Windos应用程序。
很快,负责此项目的Windos开发团队成员(@miniksa)对Nick的疑问进行了解答。
miniksa表示,保持在WSL(Windos Subsystem for Linux)默认终端输入内容的速度比其他应用快,这实际上就是他们唯一的工作!除此之外,也可能是因为他们必须使用Windos最旧和最低级别的API来完成此项工作。
WSL的默认终端不像 Electron等框架那样涉及到许多其他的层或框架,它有一个并不特别的裸窗口,并且没有任何附加组件。他们会从窗口消息(indo messages)而不是某种事件框架((WPF, WinForms, UWP, Electron))来处理键入的内容,而这些内容是通过内核传输过来的。接着,他们使用GDI的PolyTextOut将文本直接转储到窗口而不带多余的装饰。
miniksa解释道,notepad.exe确实很轻量,不过在其窗口上也具有多个控件,并且可能在编辑控件中使用某种库、框架来确定其文本布局(也可能正在使用其他库或框架进行化支持...),这些都使得它们的输入速度比不上WSL默认终端。,WSL也需要进行权衡取舍,它不像其他应用那样提供完全的化支持。
为什么要这样做?第一,conhost.exe已十分陈旧。它必须使用所有内容的裸机底层,因为它是在创建其他大多数框架之前创建的。第二,它需要保持尽可能底层的级别,而且它是用C/C++编写的,它需要尽可能保持底层的状态以方便提供给第三方使用。
至于其他Windos应用是否有机会用上这种顺滑的输入效果,miniksa觉得几乎是没机会。这些应用能够以一种简单的方式用任何一门语言来调用一种方法和布局文本(layout text),而无需手动计算像素或关心它们的字体该采用哪种样式。而恰好miniksa手动计算像素、滑动区域和数学应用区域等的方式正是使得WSL默认终端输入速度更快的原因。
特别提醒本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
扫地机器人排行榜
- 从重达百斤价值百万,到能负载2吨,外骨骼机器
- 2022年全球人工智能产业态势分析
- 超拟人数字人重磅发布,讯飞智作引流数字人新
- 低空经济破局进行时:无人机末端配送常态化,
- MDN Web 文档项目引入生成式 AI 后遭到开发者广泛
- 产教融合 校企联动 GCVC大会技术与教育论坛成功
- 中国工业互联网平台的最新观察
- 三菱电机:匠心独具 打造功率半导体行业“样本
- 玩机器人玩出“十一连冠” 碧波实小国际大赛再
- 一体化、智能化、自动化——引领模具智造 DM
- 英特尔携美国红十字会 将人工智能技术用于防灾
- 抓住人工智能“牛鼻子” 加快形成新质生产力
- 中国探月工程正打造月球版北斗系统,深空互联
- 减轻员工工作量 新加坡图书馆试用机器人管理员
- 全球机器人产业竞争中的中国策略加快追赶步伐
- OpenAI 不惜重金挖角谷歌,年薪可达 1000 万美元