首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
企鹅君技术圈
掘友等级
Android
|
很大的公司
爱技术,更爱生活
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
14
文章 14
沸点 0
赞
14
返回
|
搜索文章
最新
热门
Java零拷贝续——Java NIO为什么需要DirectByteBuffer作为中间缓冲区
堆外内存是相对于堆内内存的一个概念。堆内内存是由JVM所管控的Java进程内存,我们平时在Java中创建的对象都处于堆内内存中,并且它们遵循JVM的内存管理机制,JVM会采用垃圾回收机制统一管理它们的内存。那么堆外内存就是存在于JVM管控之外的一块内存区域,因此它是不受JVM的…
Java零拷贝四步曲——HeapByteBuffer与DirectByteBuffer
这个创建的数据最终赋值给父类ByteBuffer中的hb变量。所以HeapByteBuffer本质上内部维护的是一个字节数组。 通过os::malloc调用底层的malloc方法进行内存分配,并返回分配的地址。 mmap和malloc的分配有何不同,要回答这个问题,需要介绍一下…
Java零拷贝三步曲——Java层的实现
前两篇已经详细说明了零拷贝的来源,各种实现的原理以及linux层的实现。这一篇讲解Java的零拷贝在NIO中的实现。Java的IO有面向流的IO和NIO,两种IO的区别此处就不做说明了。 这里利用这四个参数addr、mapSize、isize、mfd创建了Unmapper类,U…
Java零拷贝二步曲——Linux 中的零拷贝技术
假如现在有这样一个需求:需要将磁盘中的一个文件通过网络传输到另一个设备上,我们看看各种实现方式中数据流的传递过程。 如果应用程序可以直接访问网络接口存储,那么在应用程序访问数据之前存储总线就不需要被遍历,数据传输所引起的开销将会是最小的。应用程序或者运行在用户模式下的库函数可以…
Java零拷贝一步曲——Linux 中的零拷贝技术
传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘 I/O 的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那…
零拷贝原理
内存缓冲数据,主要是为了提高性能,内核可以预读部分数据,当所需数据小于内存缓冲区大小时,将极大的提高性能。 数据不会复制到用户空间,只在内核空间,与sendfile类似,但是应用程序可以直接操作该内存。
Java、Android引用类型
不同的引用类型有着不同的特性,同时也对应着不同的使用场景。 实际编码中最常见的一种引用类型。常见形式如:A a = new A();等。强引用本身存储在栈内存中,其存储指向对内存中对象的地址。一般情况下,当对内存中的对象不再有任何强引用指向它时,垃圾回收机器开始考虑可能要对此内…
Volatile实践
(1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。 (2)禁止进行指令重排序。 start........ 字符串"end........"并未输出,也就是说WorkThread线程并没有停止运行。 start..…
Volatile之Java内存模型概念
本文主要讲解Java内存模型和并发的基础概念,目的是为下文“volatile实践”一文做铺垫。 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个…
个人成就
文章被点赞
68
文章被阅读
48,080
掘力值
1,199
关注了
1
关注者
62
收藏集
19
关注标签
51
加入于
2018-07-06