• 再谈一次关于Java中的 AIO(异步IO) 与 NIO(非阻塞IO)


    今天用ab进行压力测试时,无意发现的:

    Requests per second:    xxx [#/sec] (mean)

    ab -n 5000 -c 1000 http://www:8080/upload/5kb.jpg    (NIOServer: 700     AIO: 400)  

    ab -n 5000 -c 1000 http://www:8080/upload/18kb.jpg  (NIOServer: 560     AIO: 360)

    ab -n 2000 -c 100  http://www:8080/upload/134kb.jpg (NIOServer: 330     AIO: 300)

    ab -n 2000 -c 200  http://www:8080/upload/134kb.jpg (NIOServer: 330     AIO: 260)

    ab -n 3000 -c 500  http://www:8080/upload/134kb.jpg (NIOServer: 300     AIO: 310)

    ab -n 5000 -c 800  http://www:8080/upload/134kb.jpg (NIOServer: 270     AIO: 280)

    以前测试大部分使用的是 -k (开启:Connection: keep-alive),测试的时候发现AIO完胜NIO。

    今天没有使用参数: -k,从上面的结果可以看出:

    1. NIO 在高并发的时候,如果处理的是小图片(1kb - 100kb),NIO的并发性能比AIO还要好。

    原因也很简单,NIO不管有多少并发,一般只使用2 - 3个线程来处理,在处理小图片时,高并发,CPU利用率90%+,并发性能很好。

    而AIO,由于是异步的,传输文件使用的是一个线程池,一般会使用20 - 30个线程, 在处理小图片时,高并发,由于线程较多,CPU利用率在 50%  - 70%,并且多个线程切换也浪费了一些性能,并发性就不如NIO了。

    2. 当处理的文件越来越大,如100KB+,高并发的时候,AIO就达到或超过NIO了,两者工作时的CPU利用率:90%+

    2013-03-06

  • 相关阅读:
    楼宇监控说明
    数字音视频监控系统说明
    图书管理系统详细设计说明
    超邃视频远程监控系统说明
    单点登录系统(SSO)详细设计说明
    视频监控系统的作用何在
    视频监控技术与应用
    HTML--CSS样式表--基本概念(超链接的状态)
    HTML静态网页--框架
    HTML--表格与表单
  • 原文地址:https://www.cnblogs.com/personnel/p/4584871.html
Copyright © 2020-2023  润新知