jvm想必大家听说过,毕竟在工作当中时不时的蹦出了什么OOM…这些东西,让很多的程序员都无从下手,甚至小的互联网公司都流行出了这样的一句话:“性能不够,机器来凑”!
那么在此,在工作之余就和大家一起探讨一下jvm调优的一些相关的实战操作,在分析jvm调优之前,你首先要明白java截止今天jdk的版本已经升级到了13的版本,当然我们要了解一下jvm底层的一些gc,也就是垃圾回收器的机制。
jvm内存结构
jvm的内存结构,相比jmm也就是jvm的内存模型来说容易理解了许多,毕竟可以通过图来在脑子中大概划分出轮廓。

jvm内存示意图&参数配置
安全点safePoint (安全区域)
谈到安全点,这一点也是十分的重要,这个是了解gc垃圾回收器的核心入口之一。那么安全点通常发生在什么时机呢?
安全点是什么?
安全点其实就是gc垃圾回收的入口点,也就是gc垃圾回收器是在什么时候进行垃圾回收的!在程序中,我们可以想到,无非就是一些:常见的异常(Exception)Object = null…等等一些操作的时候。比如一个用户线程进来之后,在jvm的堆内存空间中首先会分配内存,也就是在Edan区(下面会为大家介绍)内会为新生的对象开辟内存区域,此后用户要进行一些逻辑业务操作,但是当中有些操作的时候不小心发生了Exception的时候,jvm可以在此时的用户线程中标记一个安全点。当用户线程的在栈中最后的一个栈帧彻底执行完毕的时候,那么此时,我们就可以在这条用户线程的这个点标记一个安全点。那么这个安全点将会供gc的垃圾回收器使用,回收jvm的内存。
jvm中断操作
jvm的中断操作是基于上述介绍用户线程中的safePoint的也就是,jvm的g

本文介绍了JVM内存结构、安全点和中断操作,重点讨论了各种垃圾回收算法,如标记-清除、标记-复制、标记-整理等,并提到了Serial垃圾回收器的工作原理。通过理解这些概念,有助于解决Java中的OOM问题并进行JVM调优。
最低0.47元/天 解锁文章
14万+

被折叠的 条评论
为什么被折叠?



