前段时间我在实现 rust-kernel-riscv (使用 Rust 无栈协程进行上下文切换的操作系统内核) 时, 跟进了一些LinuxKernel的特性, 其中印象最深的就是 io_uring. io_uring 作为最新的高性能异步 I/O 框架, 支持普通文件与网络套接字的异步读写, 解决了传统 AIO 的许多问题. 在 Linux 通过隔离内核页表来应对 Melt...
echo_server_stackfull.cgithub.com/microcai/iocp/blob/master/example/echo_server/echo_server_stackfull.c 没错,这次是个 C 代码。尽管我非常讨厌 C。 这个库,只是为了演示如何将proactor和有栈协程给结合起来。虽然我本人建议最好使用 c++20 的协程。但是总有人是升级不了编译器的。 因此我再三思考后,...
tokio 今天发布了新的 RFC,提出了新的支持 io-uring 异步运行时的计划。 Tokio目前的Linux实现使用非阻塞的系统调用和epoll进行事件通知。使用epoll,调整后的TCP代理将在用户态之外花费70%至80%的CPU周期,包括执行syscall和在内核和用户态之间复制数据的周期。2019年,Linux增加了一个新的API,即io-uring,它通过消除...
C++20协程和基于io_uringの百万并发服务器; 可异步读写, 支持Transfer-Encoding分块编码传输文件; 基于压缩前缀树编写的路由, 支持通配符解析;+ http/https/websocket、socks5代理、Json解析、Json静态反射到结构体, 封装了线程安全的LFUCache和LRUCache, 静态枚举映射, 支持STL容器的print/toString等 Topics http js...