JVM学习07:直接内存
来源:互联网 发布:python 字符转数字 编辑:程序博客网 时间:2024/06/13 14:17
划分
直接内存不是虚拟机规范中定义的内存区域,也不是虚拟机运行时数据区域的一部分。属于堆外内存,也就是本机内存的一部分。
使用场景
在JDK 1.4中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆中的DirectByteBuffer对象作为这块内存的引用进行操作。这样能在一些场景中显著提高性能,因为避免了在Java堆和Native堆中来回复制数据。
异常
DirectMemory容量可以由-XX:MaxDirectMemorySize指定,如果不指定,则默认与JAVA堆最大值(-Xmx)一样。
本机直接内存的分配不会受到Java堆大小的限制,但是,既然是内存,肯定还是会受到本机总内存(包括RAM以及SWAP区或者分页文件)大小以及处理器寻址空间的限制。服务器管理员在配置虚拟机参数时,会根据实际内存设置-Xmx等参数信息,但经常忽略直接内存,使得各个内存区域总和大于物理内存限制(包括物理的和操作系统级的限制),从而导致动态扩展时出现OutOfMemoryError异常。
阅读全文
1 0
- JVM学习07:直接内存
- JVM内存模型之直接内存
- 【JVM】5_测试直接内存溢出
- JVM学习---JAVA内存
- 学习JVM:内存划分
- JVM学习---JAVA内存
- JVM内存模型学习
- JVM学习-------内存分配
- JVM学习之-JVM内存结构
- JVM学习之-JVM内存结构
- JVM学习01-JVM内存模型
- JVM学习之-JVM内存结构
- JVM 学习笔记(一) JVM内存模型
- JVM学习(1)-JVM内存模型
- JVM学习---JVM内存结构、垃圾回收
- JVM内存管理学习整理
- JVM学习之一:内存组成
- JVM学习笔记-内存处理
- 链表中环的入口结点(java版)
- 如何优化数据库
- 6.Flume Channel Selectors
- Applied Architecture Decoupling Handlers 实用做法:解耦处理函数
- Cookie Session
- JVM学习07:直接内存
- 45. Jump Game II
- RF射频卡的介绍与与手机NFC的通信
- protocol=http/1.1, code=400, message=Bad Request, url=*********
- 【C语言】getchar函数 以及ASCII码排序问题
- GIS三维解决方案
- 惩罚函数法(内点法、外点法)求解约束优化问题最优值 matlab
- java集合框架——LinkedList和源码分析
- MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解