首页 > 试题广场 >

off-heap是指那种内存()

[单选题]
off-heap是指那种内存()
  • JVM GC能管理的内存
  • JVM进程管理的内存
  • 在JVM老年代内存区
  • 在JVM新生代内存
off-heap叫做堆外内存,将你的对象从堆中脱离出来序列化,然后存储在一大块内存中,这就像它存储到磁盘上一样,但它仍然在RAM中。对象在这种状态下不能直接使用,它们必须首先反序列化,也不受垃圾收集。序列化和反序列化将会影响部分性能(所以可以考虑使用FST-serialization)使用堆外内存能够降低GC导致的暂停。堆外内存不受垃圾收集器管理,也不属于老年代,新生代。

编辑于 2019-10-21 17:08:39 回复(9)
堆外内存意味着把内存对象分配在Java虚拟机的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机)不属于老年代和新生代。
JVM GC回收堆和方法区,排除法选择 B
这样做的结果就是能保持一个较小的堆,以减少垃圾收集对应用的影响。使用堆外内存能够降低GC导致的暂停。

堆外内存,它和内存池一样,也能缩短垃圾回收时间,但是它适用的对象和内存池完全相反。内存池往往适用于生命期较短的可变对象,而生命期中等或较长的对象,正是堆外内存要解决的。堆外内存有以下特点:

对于大内存有良好的伸缩性
对垃圾回收停顿的改善可以明显感觉到
在进程间可以共享,减少虚拟机间的复制
当然堆外内存也有它自己的问题,最大的问题就是你的数据结构变得不那么直观,如果数据结构比较复杂,就要对它进行串行化(serialization),而串行化本身也会影响性能。另一个问题是由于你可以使用更大的内存,你可能开始担心虚拟内存(即硬盘)的速度对你的影响了。
--------------------- 
作者:universe_ant 
来源:CSDN 
原文:https://blog.csdn.net/universe_ant/article/details/52145450 
版权声明:本文为博主原创文章,转载请附上博文链接!
发表于 2019-07-26 23:31:16 回复(6)

1)程序计数器

   几乎不占有内存。用于取下一条执行的指令。

   2)堆

   所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生

代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由FromSpace和ToSpace组成,结构图如下所示:

    新生代。新建的对象都是用新生代分配内存,Eden空间不足的时候,会把存活的对象转移到Survivor中,新生代

大小可以由-Xmn来控制,也可以用-XX:SurvivorRatio来控制Eden和Survivor的比例旧生代。用于存放新生代中经过

多次垃圾回收仍然存活的对象。

                 

   3)栈

   每个线程执行每个方法的时候都会在栈中申请一个栈帧,每个栈帧包括局部变量区和操作数栈,用于存放此次方

法调用过程中的临时变量、参数和中间结果。

   4)本地方法栈

   用于支持native方法的执行,存储了每个native方法调用的状态

   5)方法区

   存放了要加载的类信息、静态变量、final类型的常量、属性和方法信息。JVM用永久代(PermanetGeneration)

来存放方法区,(在JDK的HotSpot虚拟机中,可以认为方法区就是永久代,但是在其他类型的虚拟机中,没有永久代

的概念,有关信息可以看周志明的书)可通过-XX:PermSize和-XX:MaxPermSize来指定最小值和最大值。

发表于 2019-12-24 20:47:42 回复(3)
关于Java 内存这一块就没做对过
发表于 2020-06-09 15:26:11 回复(0)
对象存在堆内存中,序列化以后在堆外内存
发表于 2019-09-09 00:33:53 回复(0)
本地内存:off-heap,又叫做堆外内存,线程共享的区域,本地内存这块区域是不会受到 JVM 的控制的,不会发生
GC;因此对于整个 java 的执行效率是提升非常大,但是如果内存的占用超出物理内存的大小,同样也
会报 OOM
编辑于 2022-02-05 18:28:11 回复(0)
堆外内存意味着把内存对象分配在Java虚拟机的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机)。不属于老年代和新生代。 JVM GC回收堆和方法区,排除法选择 B 这样做的结果就是能保持一个较小的堆,以减少垃圾收集对应用的影响。使用堆外内存能够降低GC导致的暂停。 堆外内存,它和内存池一样,也能缩短垃圾回收时间,但是它适用的对象和内存池完全相反。内存池往往适用于生命期较短的可变对象,而生命期中等或较长的对象,正是堆外内存要解决的。堆外内存有以下特点: 对于大内存有良好的伸缩性 对垃圾回收停顿的改善可以明显感觉到 在进程间可以共享,减少虚拟机间的复制 当然堆外内存也有它自己的问题,最大的问题就是你的数据结构变得不那么直观,如果数据结构比较复杂,就要对它进行串行化(serialization),而串行化本身也会影响性能。另一个问题是由于你可以使用更大的内存,你可能开始担心虚拟内存(即硬盘)的速度对你的影响了。 ---------------------  作者:universe_ant  来源:CSDN  原文:https://blog.csdn.net/universe_ant/article/details/52145450  版权声明:本文为博主原创文章,转载请附上博文链接!
发表于 2021-02-04 18:53:26 回复(0)
栈管运行,堆管存储
发表于 2021-03-07 01:47:42 回复(0)
我还没学到jvm啊,一直给我推
发表于 2023-06-05 22:07:33 回复(0)
堆外内存意味着把内存对象分配在Java虚拟机的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机)。不属于老年代和新生代。 JVM GC回收堆和方法区。
发表于 2021-05-09 12:36:20 回复(0)
off heap 堆外内存 进程管理的内存
编辑于 2024-02-14 22:20:34 回复(0)
转:
off-heap叫做堆外内存,将你的对象从堆中脱离出来序列化,然后存储在一大块内存中,这就像它存储到磁盘上一样,但它仍然在RAM中。对象在这种状态下不能直接使用,它们必须首先反序列化,也不受垃圾收集。序列化和反序列化将会影响部分性能(所以可以考虑使用FST-serialization)使用堆外内存能够降低GC导致的暂停。堆外内存不受垃圾收集器管理,也不属于老年代,新生代。
可以理解堆外内存中存的是对象序列化的字节码文件
发表于 2023-06-08 15:24:47 回复(0)
off-heap是指堆外内存,堆外内存不受垃圾收集器管理,也不属于老年代,新生代
编辑于 2023-05-29 23:06:37 回复(0)
off-heap表示堆外内存
发表于 2022-09-14 00:08:33 回复(0)
off-heap叫做堆外内存,堆外内存意味着把内存对象分配在Java虚拟机的堆以外的内存,这些内存直接受操作系统管理
发表于 2022-07-08 13:35:06 回复(0)

1)程序计数器

   几乎不占有内存。用于取下一条执行的指令。

   2)堆

   所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生

代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由FromSpace和ToSpace组成,结构图如下所示:

    新生代。新建的对象都是用新生代分配内存,Eden空间不足的时候,会把存活的对象转移到Survivor中,新生代

大小可以由-Xmn来控制,也可以用-XX:SurvivorRatio来控制Eden和Survivor的比例旧生代。用于存放新生代中经过

多次垃圾回收仍然存活的对象。

                 

   3)栈

   每个线程执行每个方法的时候都会在栈中申请一个栈帧,每个栈帧包括局部变量区和操作数栈,用于存放此次方

法调用过程中的临时变量、参数和中间结果。

   4)本地方法栈

   用于支持native方法的执行,存储了每个native方法调用的状态

   5)方法区

   存放了要加载的类信息、静态变量、final类型的常量、属性和方法信息。JVM用永久代(PermanetGeneration)

来存放方法区,(在JDK的HotSpot虚拟机中,可以认为方法区就是永久代,但是在其他类型的虚拟机中,没有永久代

的概念,有关信息可以看周志明的书)可通过-XX:PermSize和-XX:MaxPermSize来指定最小值和最大值。

发表于 2022-03-17 13:57:47 回复(0)
啊off-heap 进程管理的内存
发表于 2022-03-14 16:56:46 回复(0)
off- heap叫做堆外内存,将你的对象从堆中脱离出来序列化,然后存储在一大块内存中,这就像它存储到磁盘上一样,但它仍然在 RAM中。对象在这种状态下不能直接使用,它们必须首先反序列化,也不受垃圾收集。序列化和反序列化将会影响部分性能(所以可以考虑使用 FST- serialization)使用堆外内存能够降低 GC导致的暂停。堆外内存不受垃圾收集器管理,也不属于老年代,新生代。
发表于 2021-02-01 09:22:39 回复(0)
堆外内存在1.8以后不是元空间?元空间不能gc?
发表于 2021-01-04 21:44:21 回复(0)