Deno 1.39:WebGPU 回归
Deno的1.39版本发布标志着该平台的一个重要更新,其中包含多项引人注目的改进和新特性。
WebGPU的回归
Deno 1.39重新引入了WebGPU API的支持,这一决定标志着对于高性能、跨架构的GPU编程在JavaScript中的重要进展。WebGPU API,被视为WebGL的有效继承者,为开发者提供了一种低级别、高性能的方式来直接编程GPU硬件。此规范已被最终确定,并且已经在Chrome浏览器中提供。Firefox和Safari也正在进行相关支持的开发工作。
Deno最初在2021年初引入了WebGPU的支持,但由于性能问题,这一特性在今年早些时候被移除。现在,这些性能问题已经得到解决,重新引入了WebGPU。GPU在执行某些数值运算方面,相比于CPU,能够提供极高的并行处理能力。这一点不仅在渲染和游戏中非常有用,也在诸如机器学习算法这样的应用中展现出极高的效率,因为这些算法通常可以被表达为一系列矩阵运算,而这些运算可以在GPU上高效执行。
Deno中的WebGPU实现基于即将在Firefox中推出的WebGPU实现的同一底层系统,因此,开发者可以有信心地在这一基础上构建应用。
以下是一个使用WebGPU获取GPU信息的基本示例代码:
// 尝试从用户代理获取适配器。 const adapter = await navigator.gpu.requestAdapter(); if (adapter) { // 打印有关适配器的一些基本信息。 const adapterInfo = await adapter.requestAdapterInfo(); console.log(`Found adapter: ${adapterInfo.device}`); // 在某些系统上这可能为空 const features = [...adapter.features.values()]; console.log(`Supported features: ${features.join(", ")}`); } else { console.error("No adapter found"); }
更多示例可以在他们的webgpu-examples仓库中查看。
尽管规范已稳定,但在Deno中,WebGPU仍然被视为不稳定。要在Deno中使用WebGPU,需要使用--unstable-webgpu
标志。Deno团队计划在从社区获得更多反馈,并有更多时间对实现与规范测试套件进行验证后,很快将其稳定下来。
为了提供更多的WebGPU功能,Deno还添加了std/webgpu
。
更灵活的动态导入支持
在此版本中,deno compile
现在支持更多动态导入模式。由于Deno需要在编译过程中静态包含所有可能在运行时被导入的模块,因此动态导入曾是一个挑战。现在,Deno能够处理更复杂的动态导入模式,例如使用模板字符串的导入语句。
Deno语言服务器(LSP)的增强
为了提升Deno语言服务器的性能,1.39版本引入了显著的性能改进。这包括优化了快速打字期间大量请求的处理,使在IDE中的编辑体验更为流畅。此外,新增了一个关机超时机制,以及最新版本的Deno更新通知功能。
Node.js兼容性改进
1.39版本为了方便将现有的TypeScript代码库迁移到Deno,引入了对不规范导入的支持。例如,它允许在没有文件扩展名的情况下解析导入,或者使用不正确的文件扩展名导入TypeScript文件。此外,还增加了对node_modules/.bin/
目录中可执行文件在deno task
中的运行支持。
Deno API的变更
新版本中也包括了对Deno API的若干更改。例如,对于Unix套接字的Deno.serve()
支持已稳定化,以及Deno.HttpServer.shutdown()
的稳定化。此外,引入了Deno.HttpClient
的使用关键字支持,以及对变更通知的Deno.Kv.watch()
API。
其他特性和修复
1.39版本还包括了其他许多新特性和修复,如TypeScript 5.3的支持,对Jupyter笔记本中代码块的格式化支持,以及多项对Node.js API的更新和错误修复。
这些更新和改进共同提升了Deno的性能、灵活性和兼容性,使其成为开发现代JavaScript和TypeScript应用程序的一个更加强大和多功能的平台。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Dart 3.2 发布
Dart 3.2 现已发布。该版本针对以下方面做出了改进:新增了一项语言功能,可对私有 final 字段进行非空升级;通过新增的互操作功能改善了开发者体验;支持 DevTools 的扩展程序;并更新了 Web 路线图,包括提供对 Wasm (又名 WebAssembly) 的支持。 私有 final 字段的非空升级 自 Dart 2.12 中引入健全的空安全 (sound null safety) 以来已过去几年时间。Dart 3.2 中改进了流程分析引擎,以便够对私有 final 字段实施类型升级。 可以这样理解:对于私有 final 字段,它的值在初始分配后永不更改,因此仅检查一次也是安全的。私有 final 字段升级从 Dart 3.2 起推出,并将应用于配置3.2 及以上版本 Dart SDK 的项目。 在 package:lints 3.0 中加入新的代码分析选项 针对代码分析,还对 package:lints 中的标准代码分析规则进行了一些改进。package 包含默认和推荐的静态分析规则集,适用于任何根据 dart create 或 flutter create (通过 ...
- 下一篇
Web 即时通讯项目 webtim 发布
webtim 是使用 tim 客户端 timjs 实现的 web 版本 IM 项目,主要是展示 tim 接口的功能 webtim 源码地址 webtim 在线访问地址 webtim 主要展示的功能有用户注册,登录,加好友,删除好友,发信,在线状态,建群,加入群,退群,踢出群,实时音视频 等; webtim 项目会持续更新,把 tim 的接口功能充分展示。 说明: webtim 视频电话功能 webtim 是使用 tim v2.0.1 的 bigBinary 接口 实现 视频电话 的功能 可以在 PC 端或在 移动端 使用 webtim 视频电话功能 该功能是 实时音视频功能的展示,如果需要更好的音视频效果,可以调整 js 代码 可以通过https://tim.tlnet.top体验 视频电话功能和其他 im 功能 不同浏览器流畅度不同 其他功能截图
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS关闭SELinux安全模块
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器