堆外内存简介DirectByteBuffer这个类是JDK提供使用堆外内存的一种途径,当然常见的业务开发一般不会接触到,即使涉及到也可能是框架(如Netty、RPC等)使用的,对框架使用者来说也是透明的。堆外内存优势堆外内存优势在IO操作上,对于网络IO,使用Socket发送数据时,能够节省堆内存到堆外内存的数据拷贝,所以性能更高。看过Netty源码的同学应该了解,Netty使用堆外内存池来实现零
分类:
编程语言 时间:
2019-09-10 11:33:29
阅读次数:
113
BIO/NIO/AIO区别 首先需要区分几个概念 1. IO分为内存IO/网络IO/磁盘IO,磁盘IO都是阻塞的 2. 阻塞与非阻塞是通过代码来实现的,区别在于是在于发过来操作请求,数据准备好才返回(阻塞)还是直接返回(非阻塞) 3. IO读取顺序:磁盘(磁盘IO)/网卡(网络IO)— 内核缓冲区 ...
分类:
其他好文 时间:
2019-08-28 11:04:27
阅读次数:
91
一:概述 在网络编程中,阻塞、非阻塞、同步、异步经常被提到,下面谈一下I/O在生活中的钓鱼场景(纯属虚构,如有雷同,纯属巧合)。 1.阻塞式I/O:开始钓鱼,眼睛一直盯着,鱼儿上钩拉杆。 2.非阻塞式I/O:开始钓鱼,你一直怀疑鱼儿在偷吃鱼饵,一直拉杆,没有鱼,然后重复放杆拉杆,直到有钓上鱼。 3. ...
分类:
其他好文 时间:
2019-08-21 00:16:15
阅读次数:
117
Linux多网卡绑定(bond)及网络组(team) 很多时候,由于生产环境业务的特殊需求,我们需要对服务器的物理网卡实施特殊的配置,从而来满足不同业务场景下对服务器网络的特殊性要求。如高并发的网络IO型业务,需要高速的网络IO,即对网卡的收收发包处理能力及网卡最大带宽速度等 ...
分类:
系统相关 时间:
2019-08-20 22:04:53
阅读次数:
621
在Mapper和Reducer之间有一个非常重要的组件Combiner。每一个map都可能会产生大量的本地输出,Combiner的作用就是对map端的输出先做一次合并,以减少在map和reduce节点之间的数据传输量,以提高网络IO性能,是MapReduce的一种优化手段之一 Combiner最基本 ...
分类:
其他好文 时间:
2019-08-16 17:10:59
阅读次数:
83
1. 面向对象 封装、继承、多态 2.平台无关性 不同平台的JVM运行.class字节码文件 3. 语言 泛型,Lambda 4. 类库 集合,并发,网络,IO/NIO 5. JRE Java运行环境,JVM,类库 6. JDK Java开发工具,包括JRE,javac,诊断工具 ...
分类:
编程语言 时间:
2019-07-31 18:12:59
阅读次数:
72
之前对IO理解总是有点模糊, 输入输出,其实针对 数据处理主体 A ,这个主体我们通常是指服务器程序本身, 交互目的源B ,一般是本地磁盘,由本地磁盘IO传输, 或者 远程客户端,由网络IO传输. 不管是 本地 还是远程, 都是完成 A 与B的IO交互,输入输出的都以A,也就是服务器这个主体确定流向 ...
分类:
其他好文 时间:
2019-07-29 09:57:29
阅读次数:
87
IO模型 模型即解决某个问题的固定套路 I/O 指的是输入输出 IO的问题: 当我们要输入数据或是输出数据通常需要很长一段时间,当然是对于CPU而言 在等待输入的过程中,CPU就处于闲置状态 没事干! 造成了资源浪费 注意: IO其实有很多类型,例如,socket网络IO,内存到内存的copy,等待 ...
分类:
其他好文 时间:
2019-07-09 17:59:44
阅读次数:
105
下面都是以网络读数据为例 【2阶段网络IO】 第一阶段:等待数据 wait for data 第二阶段:从内核复制数据到用户 copy data from kernel to user 下面是5种网络IO模型 【阻塞blocking IO】 两阶段全程阻塞 recvfrom -> [syscall ...
分类:
其他好文 时间:
2019-06-26 09:32:55
阅读次数:
182
[TOC] 前言 在过去的两节里已经分析了选举过程中的一些实体类和网络IO相关的机制与源码,这一节将会对zookeeper选举的核心类FastLeaderElection进行分析。 FastLeaderEleaction基本结构 可以看到FastLeaderElection的基本结构还是比较清晰的, ...
分类:
编程语言 时间:
2019-06-23 18:54:35
阅读次数:
81