还不知道off-heap堆外内存?安排~

本文探讨了JVM堆内内存及其可能导致的GC卡顿问题,详细解释了堆外内存(off-heap)的概念,以及如何使用堆外内存优化系统性能,避免频繁的full GC。同时,指出了堆外内存自我管理的挑战,并举例说明了在Java中如何申请和使用堆外内存。
摘要由CSDN通过智能技术生成
目录
  • on-heap堆内内存是什么?
  • JVM堆内存是如何划分的?
  • JVM堆内存满了后会怎么样?
  • 基于堆外内存解决系统GC卡顿问题

今天给大家聊一个很有意思的知识,就是off-heap堆外内存,平时出去面试,或者研究一些技术的时候,经常可能会遇到off-heap堆外内存这个东西,但是很多人可能还不知道off-heap堆外内存到底是什么,所以今天就给大家来深入的分析一下。

on-heap堆内内存是什么?

要说这个off-heap堆外内存,就得先说on-heap也就是堆内内存,这个on-heap堆内内存相信很多人应该都是熟悉的,那就是咱们平时写好的java系统其实运行起来就是一个JVM进程,这个JVM进程是有一块内存空间专门给他用的,这块内存空间就是堆内内存,这大概 如下图所示。

JVM堆内存是如何去划分的?

那么这里通常会产生什么问题呢?一般来说没什么大问题,但是如果是遇到要把大量数据缓存在JVM堆内存里的时候,就可能会有问题 了,所谓的数据缓存,意思就是说,把很多数据存放在堆内存里,这些数据是要一直用的,所以一般来说不能把他回收掉,所以会导致可能很多数据一直停留在JVM的堆内存里,如下图。

image.png

那么下一个问题来了,这个JVM里的堆内存是有划分的,一块区域是年轻代,一块区域是老年代,像这种缓存数据,因为是长期存在堆内存里的,所以通常会在年轻代里待一段时间,然后因为没法垃圾回收,所以给放到老年代里去,此时如下图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值