首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
后端
订阅
见贤不思齐
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
Java零拷贝续——Linux内存分配malloc、brk、mmap
如果虚拟地址对应物理地址不在物理内存中,则产生缺页中断,真正分配物理地址,同时更新进程的页表;如果此时物理内存已耗尽,则根据内存替换算法淘汰部分页面至物理磁盘中。 堆 :就是平时所说的动态内存, malloc/new 大部分都来源于此。其中堆顶的位置可通过函数 brk 和 sb…
Java零拷贝续——DirectByteBuffer内存回收
回收的核心原理是虚引用,用于跟踪垃圾回收过程,可以参考我的“Java、Android引用类型”文章。 最后调用底层的unmap0来完成内存的回收。
Java零拷贝四步曲——HeapByteBuffer与DirectByteBuffer
这个创建的数据最终赋值给父类ByteBuffer中的hb变量。所以HeapByteBuffer本质上内部维护的是一个字节数组。 通过os::malloc调用底层的malloc方法进行内存分配,并返回分配的地址。 mmap和malloc的分配有何不同,要回答这个问题,需要介绍一下…
Java零拷贝一步曲——Linux 中的零拷贝技术
传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘 I/O 的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那…
tomcat7 源码分析
tomcat 作为最常用的 web 服务器,了解他的原理,看看它的内容世界,走进他的源码,理解是怎么运行的,可以开拓我们的眼界
nginx、swoole 高并发原理初探
nginx、swoole 的高并发原理,让我们一探究竟。
深入剖析Linux IO原理和几种零拷贝机制的实现
零拷贝(Zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及 CPU 的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现 CPU 的零参与,彻底消…
Java零拷贝续——Java NIO为什么需要DirectByteBuffer作为中间缓冲区
堆外内存是相对于堆内内存的一个概念。堆内内存是由JVM所管控的Java进程内存,我们平时在Java中创建的对象都处于堆内内存中,并且它们遵循JVM的内存管理机制,JVM会采用垃圾回收机制统一管理它们的内存。那么堆外内存就是存在于JVM管控之外的一块内存区域,因此它是不受JVM的…
Java零拷贝二步曲——Linux 中的零拷贝技术
假如现在有这样一个需求:需要将磁盘中的一个文件通过网络传输到另一个设备上,我们看看各种实现方式中数据流的传递过程。 如果应用程序可以直接访问网络接口存储,那么在应用程序访问数据之前存储总线就不需要被遍历,数据传输所引起的开销将会是最小的。应用程序或者运行在用户模式下的库函数可以…
Java零拷贝三步曲——Java层的实现
前两篇已经详细说明了零拷贝的来源,各种实现的原理以及linux层的实现。这一篇讲解Java的零拷贝在NIO中的实现。Java的IO有面向流的IO和NIO,两种IO的区别此处就不做说明了。 这里利用这四个参数addr、mapSize、isize、mfd创建了Unmapper类,U…