Products
GG网络技术分享 2025-03-18 16:16 0
Deno 的 1.39 版本发布标志着该平台的一个重要更新,其中包含多项引人注目的改进和新特性。
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 语言服务器的性能,1.39 版本引入了显著的性能改进。这包括优化了快速打字期间大量请求的处理,使在 IDE 中的编辑体验更为流畅。此外,新增了一个关机超时机制,以及最新版本的 Deno 更新通知功能。
1.39 版本为了方便将现有的 TypeScript 代码库迁移到 Deno,引入了对不规范导入的支持。例如,它允许在没有文件扩展名的情况下解析导入,或者使用不正确的文件扩展名导入 TypeScript 文件。此外,还增加了对 node_modules/.bin/ 目录中可执行文件在 deno task 中的运行支持。
新版本中也包括了对 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 应用程序的一个更加强大和多功能的平台。
Demand feedback