码迷,mamicode.com
首页 > 系统相关 > 详细

linux下ACE使用epoll

时间:2014-12-23 15:23:46      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

select和epoll的比较就不用多说了。ACE在linux下默认使用select来实现Reactor的。如何在linux下让ACE使用epoll。

1.加一个编译宏,告诉ACE不要使用默认的select,而是用EVENT_POLL。

2.然后重新编译ACE的工程。

3.在你的程序中使用时:

 
#include "ace/Dev_Poll_Reactor.h"
    ACE_Dev_Poll_Reactor dev_reactor(4000); // 系统对每个进程打开文件的限制,ulimit -n
    ACE_Reactor reactor(&dev_reactor);      // 4000为最大的打开数目
    ACE_Reactor::instance(&reactor);

4. 重新编译你的程序即可

 

你可能会遇到下面的错误:

错误:ACE_Dev_Poll_Reactor::open failed inside ACE_Dev_Poll_Reactor::CTOR:

这个是linux的一些限制,可以配置新的值。EPOLL能处理的最大描述符数受用户可打开的最大描述符数限制,一般默认1024,可用ulimit -a查看,
     修改方法两个:

1.ulimit -n 5120 #每次登录到shell都要修改,只对本次登录有效。

2.用ROOT用户修改/etc/security/limits.conf,添加以下两行,然后重新登录即可。修配配置文件后全局有效。

*     soft   nofile    5120
*     hard   nofile    10240

linux下ACE使用epoll

标签:

原文地址:http://www.cnblogs.com/alylee/p/3456156.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!