垃圾回收器选型


[原创]个人理解,请批判接受,有误请指正。转载请注明出处: https://heyfl.gitee.io/JVM/jvm-gc.html

总揽

吞吐量和最短停顿时间本来就互相矛盾
Parallel Old追求的是吞吐量,CMS追求的是STW的最短
而G1通过把堆分成多个相对独立的Region块,并行的进行选择性的回收,实现一个两者兼顾的回收器

Parallel GC:

阅读更多

报表JVM调优


[原创]个人理解,请批判接受,有误请指正。转载请注明出处: https://heyfl.gitee.io/JVM/report-jvm-optimize.html

忘记记录了。。凭记忆记录下😂,下面是大概流程

背景

之前上线的一个新报表项目,我们的报表服务主要通过定时任务异步生成报表,报表比较大,每次运行时长长,实时性要求较低。
但在生产环境普罗米修斯监控中,发现服务频繁进行GC,且GC前后释放的内存不多,GC期间CPU占用略高。但是GC时长看着很短,为了解决这个问题,我进行了一次针对报表服务的JVM调优

阅读更多

深入理解Java虚拟机-阅读整理


[原创]个人理解,请批判接受,有误请指正。转载请注明出处: https://heyfl.gitee.io/JVM/JVM-Xmind.html

看完《深入理解Java虚拟机》了(好像是教这个名字吧😂),花了小几个月边看边整理,终于呕心沥血地整理完的,书籍作者基于jdk7写的,加入分析对比了一些jdk8的新特性,以及官方文献的引用,因为JVM还是比较底层灰色,难免有些地方可能有误,欢迎指正。

图片很大,需要放大看,实在看不清,可以去github上自取源Xmind文件:点这里跳转
(有一章类结构偷懒没看,自我感觉用处不是很大)

img.png

java虚拟机栈的内存结构


[原创]个人理解,请批判接受,有误请指正。转载请注明出处: https://heyfl.gitee.io/JVM/JVM-Memory-Structure-Stack.html

学习JVM的可以去我的GitHub 上查看我的Xmind详细笔记 对整本《深入理解JVM》都有详尽的笔记,帮助理解

一、 前言

Java栈分为两种:

  1. Java虚拟机栈:
    • 描述java【方法】执行的【内存模型】
    • 每个线程进入每个方法对应一个栈帧
  2. 本地方法栈(本文不做描述)
    • 同虚拟机栈,区别在于:虚拟机栈服务于Java方法(字节码),本地方法栈服务于Native方法
      本文主要讲Java虚拟机栈的内存结构

一图胜千言

Java虚拟机栈

阅读更多

JVM内存结构-总纲


[原创]个人理解,请批判接受,有误请指正。转载请注明出处: https://heyfl.gitee.io/JVM/JVM-Memory-Structure-Menu.html

学习JVM的可以去我的GitHub 上查看我的Xmind详细笔记 对整本《深入理解JVM》都有详尽的笔记,帮助理解

前言

网上有不少描述JVM内存结构的文章,但是要么比较老久了,要么描述有误,今天根据自己的理解整理下,有误请指正。

整体图解

JVM内存区域


程序计数器

记录Java程序运行到哪里

阅读更多