ACE_Proactor 在linux中的问题
我在windows下vs2003下写的程序,用到了ACE_Proactor::instance(),在windows下没问题,到在redhat9下可以编译通过,但提示:(31805 | 3086956224) ACE_POSIX_AIOCB_Proactor::Max Number of AIOs=1024
我在坛子上搜了一下,主流观点是linux的支持不够,这是个服务器端的程序,需处理大量连接,在linux下应该换成什么模型呢?epoll?
对平台不太熟悉,结果选用了不支持的模型。。。 转贴:
There are bugs in some versions of Linux that cause problems for
various ACE Proactor implementations.You might try using a different
Proactor implementation to see if this helps.For example, rather
than using the ACE_POSIX_SIG_Proactor, try using the
ACE_POSIX_AIOCB_Proactor instead.Please see Chapter 8 of C++NPv2
<www.cs.wustl.edu/~schmidt/ACE/book2/> for more discussions of these
various Proactors.
Thanks,
Doug
但是不知道,我换用哪个框架合适呢? ace源码中
#define ACE_AIO_MAX_SIZE 2048
#define ACE_AIO_DEFAULT_SIZE 1024
是os的限制吗?可以改为更大的数值吗? 最好不用,你换ACE_Dev_Poll_Reactor试试,它用EPoll实现,性能不错。
页:
[1]