JVM

JVM 内存泄漏

什么是内存泄漏 内存泄漏一般可以理解为系统资源在错误使用的情况下,导致使用完毕的资源无法回收(或没有回收),从而可能导致资源被耗尽引起系统错误。内存泄漏对系统危害比较大,因为他可以直接导致系统的崩溃。 内存泄漏和系统超负荷两者是有区别的,虽然可能导致的最终结果是一样的。 内存泄漏是用完的资源没有回收 ......
内存 JVM

JVM参数调优

配置文件在tomcat/bin目录下catalina.sh中 JAVA_OPTS="-server -Xms595M -Xmx595M -Xmn223M -XX:SurvivorRatio=10 -Xss1M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadin ......
参数 JVM

Arthas的使用并对JVM监控

Arthas 是Alibaba开源的Java诊断工具,可以查看Java进程的一些信息,例如运行情况、JVM相关参数、线程等信息,采用命令行交互模式,在Linux用着十分方便。 安装 在Linux系统中,首先创建一个文件下,然后在该文件下执行如下命令: curl -L https://alibaba. ......
Arthas JVM

JVM 思考与总结

相关基础知识见: 深入理解 JVM -- 垃圾收集器与内存分配策略 新生代为什么需要两个 Survivor 区? 如果只有一个 Eden 区加一个 Survivor 区,那么 Minor GC 后 Eden 区还存活下来的对象复制到 Survivor 区。而 Survivor 区里的对象在这次 Mi ......
JVM

JVM 对象的创建

目录对象的创建类加载分配内存内存分配的两种方式内存分配并发问题初始化零值设置对象头执行 init 方法对象的内存布局对象的访问定位句柄直接指针 HotSpot 虚拟机在 Java 堆中对象分配、布局和访问的全过程。 对象的创建 类加载 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数,是否 ......
对象 JVM

2023-8-11-OOM-爱才tomcat-web-JVM:生命只是大梦一场

可以看到,当时JVM处于满负荷状态。一开始堆内存中的空间不足以存放新创建的对象(OOM:Java heap space,注意,这个OOM错误是有stacktrace的),这也导致了一些定时任务job无法执行,也导致了无法存放从DB里读取到的数据。随着内存持续吃紧,在从DB里拿到数据进行mybatis... ......
tomcat-web-JVM 只是 生命 tomcat 2023

JVM

194. 说一下 jvm 的主要组成部分?及其作用? 类加载器(ClassLoader) 运行时数据区(Runtime Data Area) 执行引擎(Execution Engine) 本地库接口(Native Interface) 组件的作用: 首先通过类加载器(ClassLoader)会把 J ......
JVM

JVM概要

JVM概要 学前思考: JVM本质上是什么,是C/C++写的一个程序吗 JVM和操作系统有什么区别和联系 JVM为java程序提供哪些服务 概览 JVM由C/C++等可以和OS交互的语言编写,目的是在java程序运行时将字节码通过解释器或即时编译器转成对应平台的机器码,达到跨平台的作用。由此可以见J ......
概要 JVM

一天吃透JVM面试八股文

内容摘自我的学习网站:topjavaer.cn 什么是JVM? JVM,全称Java Virtual Machine(Java虚拟机),是通过在实际的计算机上仿真模拟各种计算机功能来实现的。由一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域等组成。JVM屏蔽了与操作系统平台相关的 ......
八股文 八股 JVM

[JVM]GC日志解读解析

GC日志解读解析 示例代码 package jvm.test1; import java.util.Random; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.LongAdder; /** * GC ......
日志 JVM

JVM 学习

目录1. 类加载器及类加载过程1.1 基本流程1.2 类加载器子系统作用1.3 类加载器角色1.4 加载过程(1) 加载 loading(2) 链接 linking验证 verify准备 prepare解析 resolve(3) 初始化 initstatic 与 final 的搭配问题1.5 类加载 ......
JVM

JVM调优

JVM调优 JVM调优目的 当程序卡顿、请求吞吐量(QPS)变慢、stop the word(STW)停顿时间过长、内存溢出(OOM)时,如误写死循环或本地开发内存不足,这时我们首先导出JVM内存使用情况日志进行分析(可以使用mat工具进行分析),主要分析堆内存的使用情况。然后我们输出GC日志,通过 ......
JVM

从一次Kafka宕机说起(JVM hang)

一、背景 时间大概是在夏天7月份,突然收到小伙伴的情报,我们线上的一个kafka实例的某个broker突然不提供服务了,也没看到什么异常日志,反正就是生产、消费都停了。因为是线上服务,而且进程还在,就是不提供服务了,第一反应就是保留一下 stack 信息,先重启吧 因为这个现象是第一次出现,不确定是 ......
Kafka hang JVM

JVM 的内存结构

目录JVM 内存结构程序计数器Java 虚拟机栈堆JIT逃逸分析元空间方法区元空间 JVM 内存结构 Java 程序的具体执行过程: Java 源代码文件经过编译器编译后生成字节码文件,然后交给 JVM 的类加载器,加载完毕后,交给执行引擎执行。在整个执行的过程中,JVM 会用一块空间来存储程序执行 ......
内存 结构 JVM

【JVM】Java 的类加载机制

目录字节码类加载过程LoadingVerificationPreparationResolutionInitialization类加载器双亲委派模型 字节码 Java 源文件通过编译后,就会生成字节码: 类加载过程 Java 的类加载过程可以分为 5 个阶段:载入、验证、准备、解析和初始化。 这 5 ......
机制 Java JVM

JVM进程缓存

多级缓存 一般的开发中,请求到达服务器以后,会从缓存中读取想要的数据,如果没有则查找数据库 但是当请求太多时,服务器(如Tomcat)不一定能够承担如此巨大的请求;并且,如果Tomcat服务器能够承受这些巨大的请求压力,也势必考验数据库的抗压能力所以就需要使用多级缓存来给服务器减少压力。 多级缓存示 ......
缓存 进程 JVM

java程序的运行流程(jdk,jre,jvm的关系)

资料来源于第8课:https://www.bilibili.com/video/BV1o841187iP?p=8&spm_id_from=pageDriver&vd_source=c3a656550cf5d38944e8878bb7026cbc 1.我们手写的java 代码为.java后缀文件储存在 ......
流程 程序 java jdk jre

JVM入门笔记

1. JVM介绍 Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java编程语言的运行环境,它是Java最具吸引力的特性之一。 JVM本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件,这就是Java跨平台的本质原因。由于 ......
笔记 JVM

jvm学习

一、什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM ......
jvm

博学谷学习记录 自我总结 用心分享 | JVM内核调优

1、JVM 究竟需不需要调优? JVM 经过这么多年的发展和验证,整体是非常健壮的。个人认为99%的情况下,基本用不到 JVM 调优。 通常来说,我们的 JVM 参数配置大多还是会遵循 JVM 官方的建议,例如: -XX:NewRatio=2,年轻代:老年代=1:2 -XX:SurvivorRati ......
自我总结 内核 JVM

JVM 对象分配过程

对象分配过程 依据逃逸分析,判断是否能栈上分配? 如果不存在逃逸,该对象就可以通过标量替换分解成成员标量分配在栈内存中,和方法的生命周期一致,随着栈帧出栈时销毁,减少了 GC 压力,提高了应用程序性能。 否则,继续下一步。 判断是否大对象? 如果是,直接分配到堆上 Old Generation 老年 ......
对象 过程 JVM

JVM调优工具和GC日志

一、JDK自带调优工具jvisualvm 1、启动jvisualvm,打开cmd,输入jvisualvm就会打开jvisualvm工具 启动好是这样的。左侧可以看到本地Test类在运行 双击打开可以看到JVM基本参数设置和运行环境 安装Visual GC插件,打开工具》插件,点击编辑 打开Visua ......
工具 日志 JVM

OpenJDK17-JVM源码阅读-ZGC-并发标记

1、ZGC简介 1.1 介绍 ZGC 是一款低延迟的垃圾回收器,是 Java 垃圾收集技术的最前沿,理解了 ZGC,那么便可以说理解了 java 最前沿的垃圾收集技术。 从 JDK11 中作为试验特性推出以来,ZGC 一直在不停地发展中。 从 JDK14 开始,ZGC 开始支持 Windows。 在 ......
标记 源码 OpenJDK JVM ZGC

JVM参数 参考

JVM参数 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; ​ 非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用(但是,这 ......
参数 JVM

JVM的锁优化-锁升级

锁升级 锁升级,是JDK1.8版本中对于synchronized的优化。调查发现一般情况下锁的使用都是为了处理一些极端情况,但多时间,并不会出现并发争强的情况,直接是有synchronized比较重,会影响系统性能。 升级步骤: 无锁 -> 偏向锁/匿名偏向锁 -> 轻量级锁 -> 重量级锁 升级特 ......
JVM

JVM之内存模型

前言 首先说明下JVM内存模型和Java内存模型这是两个不同的概念,不要搞混淆了。 JVM内存模型定义了Java程序在运行时如何分配、使用和释放内存,跟存储和执行相关,也就是常说的运行时数据区域。 Java内存模型(Java Memory Model,简称 JMM)是一种规范,定义了线程和主内存之间 ......
模型 内存 JVM

[JVM]关于swap的理解

关于swap的理解 概念 swap就是内存交换的意思。 计算机内存分为物理内存和虚拟内存。物理内存就是计算机实际内存的大小;虚拟内存是磁盘空间里开辟出一部分,是虚拟出来的内存空间,所以也叫磁盘缓存。 虚拟内存使得计算机在内存不够的情况可以得到部分解决。 程序运行的时候会在虚拟内存与物理内存之间进行替 ......
swap JVM

JVM-1

JVM-1 你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接oOM ! 想解决线上JVM GC问题,但却无从下手。 新项目上线,对各种JVM参数设置一脸茫然,直接默认吧,然后就JJ了 每次面试之前都要重新背一遍JVM的一些原理概念性的东西,然而面试官却经常问你在实际项目中如 ......
JVM

JVM性能调优总结

#tomcat的jvm优化生产案例: [root@centos8 ~]#vim /usr/local/tomcat/bin/catalina.sh JAVA_OPTS="-server -Xms4g -Xmx4g -Xss512k -Xmn1g -XX:CMSInitiatingOccupancyF ......
性能 JVM

Java 平台和 Java 虚拟机(JVM)

Java平台是一个面向多个操作系统的开发和运行环境,提供了一套完整的软件开发工具和运行时环境。它包括Java编程语言、Java开发工具(如编译器、调试器等)和Java运行时环境(包括Java虚拟机和类库)。 Java虚拟机(Java Virtual Machine,JVM)是Java平台的核心组件之 ......
Java 平台 JVM