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的更多相关文章

  1. linux下select/poll/epoll机制的比较

    select.poll.epoll简介 epoll跟select都能提供多路I/O复用的解决方案.在现在的Linux内核里有都能够支持,其中epoll是Linux所特有,而select则应该是POSI ...

  2. Linux下select&poll&epoll的实现原理(一)

    最近简单看了一把 linux-3.10.25 kernel中select/poll/epoll这个几个IO事件检测API的实现.此处做一些记录.其基本的原理是相同的,流程如下 先依次调用fd对应的st ...

  3. Linux下select&poll&epoll的实现原理(一)【转】

    转自:http://www.cnblogs.com/lanyuliuyun/p/5011526.html 最近简单看了一把 linux-3.10.25 kernel中select/poll/epoll ...

  4. linux下select,poll,epoll的使用与重点分析

    好久没用I/O复用了,感觉差点儿相同都快忘完了.记得当初刚学I/O复用的时候花了好多时间.可是因为那会不太爱写博客,导致花非常多时间搞明确的东西,依旧非常easy忘记.俗话说眼过千遍不如手过一遍,的确 ...

  5. linux下ACE的编译与安装

    1.环境变量的设置vim /etc/profile 2.然后输入export ACE_ROOT=/root/ACE/ACE_wrappers export MPC_ROOT=$ACE_ROOT/MPC ...

  6. Linux下使用bind,epoll对网络编程封装

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  7. linux下epoll实现机制

    linux下epoll实现机制 原作者:陶辉 链接:http://blog.csdn.net/russell_tao/article/details/7160071 先简单回顾下如何使用C库封装的se ...

  8. linux下epoll如何实现高效处理百万句柄的

    linux下epoll如何实现高效处理百万句柄的 分类: linux 技术分享 2012-01-06 10:29 4447人阅读 评论(5) 收藏 举报 linuxsocketcachestructl ...

  9. linux 下 epoll 编程

    转载自 Linux epoll模型 ,这篇文章讲的非常详细! 定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显 ...

随机推荐

  1. [Git] set-upstream

    When you want to push your local branch to remote branch, for the first push: git push --set-upstrea ...

  2. NET中级课--文件,流,序列化1

    1.对于机器的角度来看,任何文件都是二进制的0和1. 2.   位:bit,一个1或0就是1位. 字节:byte,每8位一个字节.一个字节的范围就是00000000到1111111,换成10进制就是0 ...

  3. CSS3旋转图片效果收集

    火狐中文网图片效果: [http://i.firefoxchina.cn/?www.firefoxchina.cn] .news-img-wrapper:hover img {     transfo ...

  4. ScrollView 的使用(非原创)

    1.ScrollView滚动视图是指当拥有很多内容,屏幕显示不完时,需要通过滚动跳转来显示的视图.ScrollView只支持垂直滚动 <ScrollView xmlns:android=&quo ...

  5. iOS 开发者证书总结

    iOS 证书分两种类型. 第一种为$99美元的,这种账号有个人和公司的区别,公司账号能创建多个子账号,但个人的不能.这种账号可以用来上传app store 第二种为¥299美元的,这种账号只能用于企业 ...

  6. 关于css的优先级

    样式的优先级 外部样式 < 内部样式 < 内联样式 选择器的优先权 解释: 1.  内联样式表的权值最高 1000: 2.  ID 选择器的权值为 100; 3.  Class 类选择器的 ...

  7. ARM编译空间属性(转)

    原文地址:http://www.cnblogs.com/hongzg1982/articles/2205093.html 1. 程序的空间属性 一般情况下,一个程序本质上都是由 bss段.data段. ...

  8. Reading source code

    software is a system built up of many parts rebuild that decomposition see the patterns in codes is ...

  9. python-整理-logging日志

    python的日志功能模块是logging 功能和使用方式非常类似于log4 如何使用logging: # 导入日志模块import logging# 使用配置文件设置日志时,需要导入这个模块 imp ...

  10. python运维开发(十八)----Django(二)

    内容目录 路由系统 模版 Ajax model数据库操作,ORM 路由系统 django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对 ...