AIO + ByteBufferQueue + allocateDirect 终于可以与NIO的并发性能达到一致。

看到这个标题,你可能会惊讶,相比NIO,AIO不就是为了在高并发的情况下代替NIO的吗?

是的,没错,但是在并发不高的情况下,AIO的性能表现很多时候还不如NIO。

 

在一台机子上用ab进行并发压力测试,一般只能开到1000并发,但测试的时候发现,如果在100 - 300并发的情况下,AIO的性能表现只达到NIO的80%,在并发500+的情况下,AIO开始接近NIO,在并发800+的时候,AIO才会开始超越NIO.

 

而我一直在寻找一个能在300并发以内的情况下,达到NIO的性能,不说去超越NIO。

花了好几天的时间,使用ByteBufferQueue(直接字节缓存区队列,可重复使用) + allocateDirect(直接缓存区),经过大量的测试,终于基本上可以达到NIO在300并发以下的性能水平。

 

2012-07-13

 

posted @ 2015-06-17 14:47  personnel  阅读(396)  评论(0编辑  收藏  举报
友情链接:图片批量处理工具 gif动态图制作工具 制作电子相册 图片排版工具 制作淘宝主图视频 MKScript 鼠标键盘自动化脚本语言