1。全局分配内存(改进,根据线程分配内存,可不加锁得到要已分配的buffer空间)
2. 收到数据后,先解析数据长度
3。根据数据长度,寻找最近合适的buffer数据缓冲空间
4. 接收数据,直到数据缓冲填满
5。缓冲填满后,把信息放入队列,发出信号
6。处理线程LogicThread收到信号后处理数据,或交给应用,或回传
xp + 虚拟机ubuntu 15测试 ,1G网卡.
A。在虚拟机Linux下写的Client给xp下的iocpnet server,通过iftop查看发送速度,能平均达到128Mb/s,iocpnet cpu占用率在12%左右,但Linux下load average达到1.13三左右
B。将iocpnet移植到Linux,核心用epoll sem_t消息机制,通过xp client向它发数据,最大数据只有68Mb/s,只有iocp的一半.原因还不清楚.
阅读(1204) | 评论(0) | 转发(0) |