• linux下ACE使用epoll


    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
  • 相关阅读:
    【BZOJ 3238】 3238: [Ahoi2013]差异(SAM)
    【BZOJ 4180】 4180: 字符串计数 (SAM+二分+矩阵乘法)
    【BZOJ 3676】 3676: [Apio2014]回文串 (SAM+Manacher+倍增)
    【BZOJ 3998】 3998: [TJOI2015]弦论 (SAM )
    【BZOJ 2946】 2946: [Poi2000]公共串 (SAM)
    【BZOJ 1398】 1398: Vijos1382寻找主人 Necklace (最小表示法)
    【BZOJ 4031】 4031: [HEOI2015]小Z的房间 (Matrix-Tree Theorem)
    【BZOJ 3534】 3534: [Sdoi2014]重建 (Matrix-Tree Theorem)
    【BZOJ 3659】 3659: Which Dreamed It (Matrix-Tree&BEST theorem )
    【BZOJ 4596】 4596: [Shoi2016]黑暗前的幻想乡 (容斥原理+矩阵树定理)
  • 原文地址:https://www.cnblogs.com/alylee/p/3456156.html
Copyright © 2020-2023  润新知