美文网首页
java直接内存

java直接内存

作者: gzss | 来源:发表于2019-06-04 21:32 被阅读0次

    直接内存并不是虚拟机运行时数据区的一部分,也不是java虚拟机规范中定义的内存区域。但是这部分内存也被频繁的使用,而且也可能导致OutOfMemoryError异常出现。

    在java中的NIO类,引入了一种基于通道channel与缓冲区buffer的I/O方式,它可以使用native函数库直接分配对外内存,然后通过一个存储在java堆中的DirectByteBuffer对象作为这块内存的应用进行操作。这样能在一些场景中显著提高性能,因为避免了在java堆和native堆中来回复制数据。

本机直接内存的分配不受java堆大小的限制,但是既然是内存,肯定还是受本机总内存(包括RAM以及SWAP区或者分页文件)大小以及处理器寻址空间的限制。如果设置虚拟机参数是忽略直接内存可能会使得内存区域总和大于无力内存限制从而导致动态扩展是出现内存溢出异常。

相关文章

  • Java 直接内存

    直接内存并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,但是我们常常频繁的使用,而且也...

  • java直接内存

    直接内存 很多一说起直接内存,就会想到堆外内存。但是从概念上说,两者确实不是一回事。堆外内存,就是堆以外的内存,我...

  • java直接内存

    直接内存并不是虚拟机运行时数据区的一部分,也不是java虚拟机规范中定义的内存区域。但是这部分内存也被频繁的使...

  • java直接内存

    直接内存 很多一说起直接内存,就会想到堆外内存。但是从概念上说,两者确实不是一回事。堆外内存,就是堆以外的内存,我...

  • 直接内存与 JVM 源码分析

    直接内存(堆外内存) 直接内存有一种叫法,堆外内存。 直接内存(堆外内存)指的是 Java 应用程序通过直接方式从...

  • 直接内存

    什么是直接内存直接内存就是指:java堆外内存。直接内存不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中...

  • 关于java直接内存

    java1.4引入了nio.DirectByteBuffer,可能大部分同学在工作中跟直接内存打交道的并不多,本篇...

  • Android中缓存理解(一)

    Java GarbageCollection(GC) Java不能像C/C++那样直接对内存进行操作(内存分配和垃...

  • java 虚拟机(jvm)-02-java 内存模型(jmm)介

    运行时内存模型 相关内容参见 java 运行时内存模型 直接内存 特征 直接内存并非 JVMS 定义的标准 Jav...

  • Java Nio 之Buffer

    Java Nio 系列Java Nio 之BufferJava Nio 之直接内存Java Nio 之高级搬砖工(...

网友评论

      本文标题:java直接内存

      本文链接:https://www.haomeiwen.com/subject/kixdxctx.html