<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Performance on 刘家财的个人网站</title><link>https://liujiacai.net/tags/performance/</link><description>Recent content in Performance on 刘家财的个人网站</description><generator>Hugo</generator><language>zh-cn</language><managingEditor>blog@liujiacai.net (刘家财)</managingEditor><webMaster>blog@liujiacai.net (刘家财)</webMaster><lastBuildDate>Tue, 27 Oct 2026 21:18:18 +0800</lastBuildDate><atom:link href="https://liujiacai.net/tags/performance/index.xml" rel="self" type="application/rss+xml"/><item><title>异步 I/O 的两种范式：Readiness 与 Completion</title><link>https://liujiacai.net/blog/2026/10/27/io-models/</link><pubDate>Tue, 27 Oct 2026 11:00:00 +0800</pubDate><author>blog@liujiacai.net (刘家财)</author><guid>https://liujiacai.net/blog/2026/10/27/io-models/</guid><description>&lt;p&gt;构建高性能网络服务和系统运行时，离不开&lt;strong&gt;异步 I/O（Asynchronous I/O）&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;在操作系统与主流编程语言中，异步 I/O 主要分为两条技术路线：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;一是以 &lt;strong&gt;Linux &lt;code&gt;epoll&lt;/code&gt;、macOS &lt;code&gt;kqueue&lt;/code&gt;、Nginx、Redis、Node.js (&lt;code&gt;libuv&lt;/code&gt;)、Rust (&lt;code&gt;Tokio&lt;/code&gt;)、Go (&lt;code&gt;netpoller&lt;/code&gt;)&lt;/strong&gt; 为代表的 &lt;strong&gt;Readiness-based（基于就绪通知 / Reactor 模式）&lt;/strong&gt;；&lt;/li&gt;&#10;&lt;li&gt;二是以 &lt;strong&gt;Windows &lt;code&gt;IOCP&lt;/code&gt;、Linux &lt;code&gt;io_uring&lt;/code&gt;、ScyllaDB、C# (async/await)、Zig (&lt;code&gt;std.Io&lt;/code&gt;)、Rust (&lt;code&gt;monoio&lt;/code&gt;)&lt;/strong&gt; 为代表的 &lt;strong&gt;Completion-based（基于完成通知 / Proactor 模式）&lt;/strong&gt;。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;底层的 I/O 机制往往决定了上层编程语言的异步抽象设计：为什么 Go 能够以纯同步的代码写出高并发？为什么 Rust 的 &lt;code&gt;Future&lt;/code&gt; 与 &lt;code&gt;epoll&lt;/code&gt; 天然契合，却在面对 &lt;code&gt;io_uring&lt;/code&gt; 时遇到缓冲区所有权借用冲突？为什么 Zig 会选择直接基于完成模型设计标准库？为什么 Windows 体系最早催生了现代的 &lt;code&gt;async/await&lt;/code&gt; 语法？&lt;/p&gt;</description></item></channel></rss>