libevent windows平台到底用的是select还是IOCP-CSDN论坛

如题所述

更正一下,由于在WIndows中,event_base_get_method函数返回的是win32,无法区分。
在event.h文件定义了EVENT_BASE_FLAG_STARTUP_IOCP宏。那里是注释也写明了,如果设置了这个宏,那么evconn_listener_new和bufferevent_socket_new函数就会使用iocp。可以通过event_config_set_flag函数设置。
其他的情况,应该就是使用select,楼主应该也跟踪过代码,明白这点。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-07-26
  event_base_get_method函数能够获取对应的event_base使用的是哪个后端(即select、IOCP这些函数)。该函数返回一个字符串,字符串的内容就是select、poll、iocp这些后端的名字。
  更正一下,由于在WIndows中,event_base_get_method函数返回的是win32,无法区分。
  在event.h文件定义了EVENT_BASE_FLAG_STARTUP_IOCP宏。那里是注释也写明了,如果设置了这个宏,那么evconn_listener_new和bufferevent_socket_new函数就会使用iocp。可以通过event_config_set_flag函数设置。
  其他的情况,应该就是使用select,楼主应该也跟踪过代码,明白这点。
  转载,仅供参考。本回答被提问者和网友采纳

libevent windows平台到底用的是select还是IOCP-CSDN论坛
其他的情况,应该就是使用select,楼主应该也跟踪过代码,明白这点。

网络I\/O库总结(libevent,libuv,libev,libeio)
Libev 支持类 UNIX 系统的多种 I\/O 多路复用模型,如 select、poll、epoll、kqueue、evports 等,但对于 Windows 的支持仅限于 select 模型,效率较低,性能不如 Libuv 封装的 IOCP。Libev 目标是修复 Libevent 的一些设计问题,如避免使用全局变量,提供更高效的事件类型管理。Libuv Libuv 是一个跨...

libevent 和 libuv 是什么关系啊?
libev : 较libevent而言,设计更简练,性能更好,但对Windows支持不够好;libuv : 开发node的过程中需要一个跨平台的事件库,他们首选了libev,但又要支持Windows,故重新封装了一套,*nix下用libev实现,Windows下用IOCP实现;

IO模型及select,poll,epoll和kqueue的区别
实际上,不管是哪种模型,都可以抽象一层出来,提供一致的接口,广为人知的有ACE,Libevent(基于reactor模式)这些,他们都是跨平台的,而且他们自动选择最优的I\/O复用机制,用户只需调用接口即可。说到这里又得说说2个设计模式,Reactor and Proactor。见:Reactor模式--VS--Proactor模式。Libevent是Reactor模型,ACE提供Proact...

QTcpServer 最多能承受多少client同时持久连接着
Qt用的是select,libevent和boost用的是epoll(linux),iocp(win),k```(bsd)、、、最大吞吐量的确应该达不到libevernt和boost级别,但是支持几千个连接是没问题的、、注意自己继承TCPserver,重写incomingConnection函数,因为qtcpserver默认是把tcpsocket存在一个list里的、、还有更改下默认的最大值,...

新手学习游戏开发注意事项是什么?
后台:C++ 、LUA、网络模式(reactor、proactor等)、不同平台下的阻塞或非阻塞模式(Windows\/IOCP\/Select,Linux\/Epoll)、开源网络库( CURL、LIBEVENT、ACE、NGINX、MUDUO、AISO)、数据库( MYSQL、REDIS、LEVELDB、 MOGODB)、开源游戏服务器框架、新兴语言以及其开源框架架构( NODE.JS、GO等)、云...

初学服务器知识该选择什么书籍
Windows 下 IOCP,Linux 下 epoll(其他类 Unix 下的技术类似)是需要掌握的。实际开发中,网络库可能自己实现,也可以基于某些开源库开发,所以,无论是出于学习还是使用目的,都可以研究一下开源库,例如 libuv、libevent、boost ASIO。操作系统相关。类 Unix 系统比较好的书籍就是《Advanced Programming ...

libevent 和 libuv 是什么关系啊?
libevent : 名气最大,应用最广泛,历史悠久的跨平台事件库;libev : 较libevent而言,设计更简练,性能更好,但对Windows支持不够好;libuv : 开发node的过程中需要一个跨平台的事件库,他们首选了libev,但又要支持Windows,故重新封装了一套,*nix下用libev实现,Windows下用IOCP实现;

libevent 和 libuv 是什么关系
libevent : 名气最大,应用最广泛,历史悠久的跨平台事件库;libev : 较libevent而言,设计更简练,性能更好,但对Windows支持不够好;libuv : 开发node的过程中需要一个跨平台的事件库,他们首选了libev,但又要支持Windows,故重新封装了一套,*nix下用libev实现,Windows下用IOCP实现;

libevent 和 libuv 是什么关系啊?
libevent : 名气最大,应用最广泛,历史悠久的跨平台事件库;libev : 较libevent而言,设计更简练,性能更好,但对Windows支持不够好;libuv : 开发node的过程中需要一个跨平台的事件库,他们首选了libev,但又要支持Windows,故重新封装了一套,*nix下用libev实现,Windows下用IOCP实现;

相似回答