提问人:PDZ 提问时间:9/13/2022 更新时间:11/16/2022 访问量:690
事件库 (libevent/libuv/...) 和异步 I/O (libaio, liburing) 之间的本质区别是什么?
What is the essential difference between event library (libevent/libuv/...) and async I/O (libaio, liburing)?
问:
对于高性能 I/O,通常使用一些技术:
- poll/select/epoll/kqueue:它们是支持 I/O 多路复用的相同类型的系统调用。
- libevent/libev/libuv:它们是跨平台的。我认为他们包装了上述系统调用并最终实现事件驱动。
- libaio/libeio/liburing:它们提供对异步 IO 的支持。
似乎它们都可以实现高性能,libevent/libev/libuv 在易用性和跨平台性方面可能比 poll/select/epoll/kqueue 更好。但是 libevent/libev/libuv 和 libaio/libeio/liburing 似乎都非常出色,并且似乎是可以互换的。
事件库和异步 I/O 之间的本质区别是什么?在哪种情况下使用哪个更好?
谢谢。
答:
评论