jvm

作者: 闻乐 | 来源:发表于2022-06-25 15:42 被阅读0次

new出来的对象通常放在堆中

栈中一般放局部变量(线程栈)

一个方法对应一块栈帧内存区域。不同的方法栈帧内存隔开

栈FILO 先进后出

//反汇编

javap  -c Math.class >math.txt 

栈(线程) 线程信息,栈帧

堆:new的对象

本地方法区:存储调用c/c++的那些方法引用地址

方法区(元空间):静态变量,常量,类信息

程序计数器:引用计数,主要存地址的

堆由老年代和年轻代组成,老年代占2/3,年轻代占1/3

年轻代又分为伊甸园区和s1,s2,大致为8:1:1

分代年龄存在object对象头里面

jvm调优arthas

jad反编译代码

老年代满了做fullgc,如果再放不下,则报oom

STW:stop the world

jvm调优的目的就是减少fullgc

因为当进行fullgc时,jvm会停掉所有的用户线程,专心去干收集的事,对用户来说就会卡顿

minorgc 也会STW,只是minorgc的时间很短,fullgc的时间很长

如何找到垃圾对象?

1.引用计数法

2.可达性分析算法

java用的事第二种,python用的第一种

因为引用计数法无法处理循环依赖

垃圾回收算法

标记清除算法

会产生碎片,导致后期空间利用率不高

2.复制算法

复制算法

没有碎片,浪费空间

比如内存4个g,会分为两部分,只是用其中一部分,另一部分用作垃圾回收

3.标记整理

垃圾收集器

以前是分代模型,现在是分区模型

jvm调优主要是对堆内存以及方法区调优

java1.1早期版SerialGc 单线程手机

Java1.8默认是ps 和po

ParNew + CMS 

CMS是为了解决STW时间过长的问题

ParNew是 ps的升级版

相关文章

  • 深入JVM内核 目录

    深入JVM内核 目录 深入JVM内核1 初识JVM深入JVM内核2 JVM运行机制深入JVM内核3 常用JVM配置...

  • JVM内存模型(jvm 入门篇)

    概述 jvm 入门篇,想要学习jvm,必须先得了解JVM内存模型,JVM内存模型,JVM内存模型,JVM内存模型,...

  • Jvm(一)-Java虚拟机的内存管理

    [toc] JVM JVM回顾 1. 什么是 JVM JVM是Java Virtual Machine(Java虚...

  • JVM介绍系列文章

    知晓JVM系列(一):对JVM总览知晓JVM系列(二):JVM内存管理机制与优化初探知晓JVM系列(三) :常用的...

  • 科普

    1.JVM/JRE/JDK关系JVM

  • JVM

    JVM之内存模型JVM之对象定位与访问JVM之Java垃圾回收机制JVM之类加载

  • JVM

    栈容量由-Xss指定深入理解JVM—JVM内存模型 JVM内存模型和JVM参数的关系

  • JVM基础知识系列

    JVM基础系列 JVM知识点扫盲系列(1) JVM知识点扫盲系列(2) JVM内存的那些事 JVM类加载的那些事 ...

  • (过时、作废)android 多线程 — GC

    简单解析下JVM 先说下 JVM,虽然上篇文章在讲内存时介绍了 JVM ,但是我在这里还是以 JVM 开头,JVM...

  • 技术文章罗列

    JVM JVM知识点详解JVM初步诊断JVM内存模型 Java Api java8 stream Api讲解(上)...

网友评论

      本文标题:jvm

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