xiand.ai
科技

Zig 0.16.0 临近:std.Io 引入 io_uring 与 GCD 实验性异步支持

Zig 语言的开发日志于二月报告了两项关键进展,尤其是在标准库 I/O 方面,引入了基于用户态栈切换的 io_uring 和 Grand Central Dispatch (GCD) 实现。尽管这些新功能已可供测试,但作者 Andrew Kelley 强调它们仍处于实验阶段,存在错误处理和性能诊断等待完善之处。

La Era

Zig Language Integrates io_uring and GCD for Experimental Asynchronous I/O
Zig Language Integrates io_uring and GCD for Experimental Asynchronous I/O
Publicidad
Publicidad

根据 Zig 官方开发日志的最新更新,随着 0.16.0 版本发布周期的临近,核心贡献者 Jacob 成功将 std.Io.Evented 模块与 io_uring 和 Grand Central Dispatch (GCD) 两种新的异步 I/O 机制对接。

这两种新的实现均采用了用户态栈切换技术,通常被称为“协程”或“绿色线程”,允许开发者通过实例化 std.Io.Evented 来使用,这标志着 Zig 在实现可移植、高性能异步 I/O 方面迈出了重要一步。

然而,作者 Andrew Kelley 在 2 月 13 日的报告中明确指出,这些功能目前仍被视为实验性,需要进行后续的完善工作,包括改进错误处理、诊断使用 Evented 模式时出现的性能退化,以及增加测试覆盖率。

另一个重要的构建系统改进是包管理工作流程的增强,新版本将获取的依赖包本地存储在项目的 zig-pkg 目录下,紧邻 build.zig 文件。

这一变化使得分发包含所有依赖项的自包含源代码压缩包成为可能,有利于离线构建或长期归档,同时依赖项的副本也会被压缩并缓存到全局的 ~/.cache/zig/p/ 目录中。

日志展示了对比示例,清晰地说明了通过切换 I/O 实现,应用程序逻辑本身(如“Hello, World!”的输出)无需修改,凸显了 Zig 抽象层设计的灵活性。

尽管 Zig 编译器本身已经能够使用这些新的 Evented I/O 接口进行编译和运行,但针对编译器使用时的性能问题,目前尚未完全定位和解决。

这些最新的开发成果预示着 Zig 语言在系统编程领域,特别是在需要精细控制 I/O 调度的应用场景中,其功能和易用性将得到进一步提升。

Publicidad
Publicidad

评论

评论存储在您的浏览器本地。

Publicidad
Publicidad