高出25%-35%,即使使用多个selector的NIO实现方式也无法比基于Linux的NPLT实现同步操作的性能更快
其次,linux内核使用epoll的技术主要是解决poll本身性能以及可伸缩性问题...,然而对于实现高性能的IO设计,我们还需要借助多线程技术来实现,下面针对多线程的同步与异步方式进行对比与分析
多线程环境下同步与异步性能对比
linux在内核2.6版本之后使用NPTL的规范实现线程技术...然而对于多线程环境的同步操作如下图:
通过上述可知,syncHashMap与HashTable随着增加的线程数,其执行的性能耗时更高,因为同步操作的hashtable和syncHashMap是在线程级别加锁实现顺序的写操作...:所有的请求资源都阻塞于事件轮询,通过事件轮询检测请求资源是否处于就绪状态,一旦处于就绪状态,多路复用器就会启动资源同步操作,将就绪资源发送到调度程序中处理请求
请求转发器:负责接收多路复用器的就绪资源...实现高性能手段
线程池技术:需要关注线程池核数,线程池最大线程数,超时时间,阻塞队列存储的策略,连接负载过多处理策略
NIO提供非阻塞技术:即保证accept以及read操作为非阻塞
NIO提供的内存优化技术