网络I/O优化

网络I/O优化的基本原则:

1.减少网络交互的次数
在网络交互两端设置缓存,发起交互的一端设置缓存,如优秀的数据库框架hibernate,mybatis都有一级缓存和二级缓存,有效的减少了数据库的访问次数,即减少了网络链接的次数,在接收端设置缓存可以减少数据的处理时长,使ESTABLISHED状态缩短,加快链接释放速度,链接状态转换如下图:

也可以通过合并的方式减少交互次数,即批量请求,比如数据库事务.

2.减少网络传输数据量的大小

发送内容可以压缩后在发送

3.尽量减少编码

网络i/o中都是通过字节传输的,如果要传输的是字符形式的数据,字符转化字节比较耗时,如果在传输前就将字符转成字节,可以减少传输时间

可以通过序列化方法对发送的数据进行压缩,如用protobuf工具来传输数据量较大的数据

4.同步与阻塞

同步是指做完一件事才能做第二件事,发送两个请求,发送完一个并返回结果才能发送第二个,而异步则是可以同时做两件事

阻塞是指一个流程卡主时cpu空闲下来等待流程畅通,非阻塞则为cpu去做其他的事情,Nio中非阻塞的体现就是cpu可以轮询其他的通道.

 组合的方式有4种,分别实同步阻塞、同步非阻塞、异步阻塞、异步非阻塞,如下表所示。这4种方式都对I/O性能有影响。

组合方式 性能分析
同步阻塞 最常用的一种用法,使用也是最简单的,但是I/O性能一般很差,CPU大部分处于空闲状态
同步非阻塞

提升I/O性能的常用手段&#x

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值