找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4666|回复: 3

ACE_Proactor 在linux中的问题

[复制链接]
发表于 2007-12-21 21:56:58 | 显示全部楼层 |阅读模式
我在windows下vs2003下写的程序,用到了ACE_Proactor::instance(),在windows下没问题,到在redhat9下可以编译通过,但提示:
(31805 | 3086956224) ACE_POSIX_AIOCB_Proactor::Max Number of AIOs=1024
我在坛子上搜了一下,主流观点是linux的支持不够,这是个服务器端的程序,需处理大量连接,在linux下应该换成什么模型呢?epoll?
对平台不太熟悉,结果选用了不支持的模型。。。
 楼主| 发表于 2007-12-21 21:57:03 | 显示全部楼层
转贴:

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

但是不知道,我换用哪个框架合适呢?
 楼主| 发表于 2007-12-21 21:57:12 | 显示全部楼层
ace源码中

#define ACE_AIO_MAX_SIZE     2048
#define ACE_AIO_DEFAULT_SIZE 1024

是os的限制吗?可以改为更大的数值吗?
 楼主| 发表于 2007-12-21 21:57:22 | 显示全部楼层
最好不用,你换ACE_Dev_Poll_Reactor试试,它用EPoll实现,性能不错。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-23 18:44 , Processed in 0.015915 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表