使用 io_uring 同时等待多个事件

2024-11-19

本文介绍了Linux中使用io_uring进行多事件等待的机制。传统上,等待事件依赖于系统调用,例如read()、nanosleep()等,而epoll_wait可以用于等待多个文件描述符。然而,某些等待场景,例如futex(),无法通过文件描述符实现。io_uring提供了一种通用的异步框架,允许用户提交多个请求并等待任意一个完成,从而实现对包括futex在内的多种等待任务的多路复用。io_uring的优势在于减少了系统调用次数,避免了用户空间和内核空间之间的数据拷贝,并且支持futex等关键功能,方便构建高效的异步框架。

阅读更多
6
未分类

利用值预测战胜 L1 缓存

2024-07-12

文章介绍了一种利用值预测来提高CPU缓存命中率的技术。文章首先解释了CPU分支预测和缓存的工作原理,然后通过一个链表求和的例子展示了L1缓存命中带来的数据依赖问题。作者提出了一种值预测的方法,通过预测下一个节点的地址来消除数据依赖,从而提高代码执行效率。最后,作者还提供了一些代码示例和测试结果,证明了该技术的有效性。

阅读更多
39
未分类 CPU缓存 值预测