JVM堆外内存随笔
2024-09-14 16:17:44
一 JVM堆外内存
1)java与io(file,socket)的操作都需要堆外内存与jvm内存进行互相拷贝,因为操作系统是不懂jvm的内存结构的(jvm的内存结构是自管理的),所以堆外内存存放的是操作系统可以操作的内存地址模型,可以拷贝数据到内核的空间。
2)netty等网络通信组件为了减少jvm的内存到内核数据拷贝,所以把与网络相关的数据可以存放到堆外内存,减少一次内存的拷贝。
3)堆外内存是不属于jvm管理的,但是堆外内存是当前jvm进程的空间,而不是有的网络上所说的内核空间,内核地址是供操作系统的地址空间,不会给应用的,他的地址空间与jni的空间应该是一致的。
4)堆外内存的回收问题可以自己调用clear释放,或者jvm fullgc的时候也会释放,但是在jvm中只有通过PhantomReference可以感知到当前的对象是否被释放。
最新文章
- 关于robotframework,app,appium的xpath定位问题及常用方法
- Prefab Assist插件
- 手把手教你 用 wpf 制作metro ProgressRing (Windows8 等待动画)
- table extraction
- 事件对象event和计时器
- 【转】linux驱动程序中的并发控制
- android 状态栏、标题栏、屏幕高度
- 使用 Eclipse Memory Analyzer 进行简单内存泄漏分析
- MVC不用302跳转Action,内部跳转
- Mac iterm2 linux vim 语言问题
- Java-ServletContext
- [Android] Android 最全 Intent 传递数据姿势
- 关于selenium的8种元素定位
- hdu1358 Period kmp求循环节
- JMeter之Ramp-up Period(in seconds)说明
- 2017年5月24日 HTML 基础知识(二)
- Mirror--如何在主库上增加文件
- length,lengthb,substr,substrb,instr小用
- slf4j简单使用
- oracle10偶然性卡住登陆