杂记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

Java拾贝第二天——数据类型与运算符杂记

众所周知任何数据类型都可以向String转型 public static void main(String[] args) { int a = 1; int b = 2; System.out.println("1+2=" + a + b); } //1+2=12 由于输出语句中碰到了字符串,此时的 ......
运算符 杂记 类型 数据 Java

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

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

misc杂记

用stegsolve打开找到隐藏的二维码 识别出来一长串16进制 有flag 1.py等,考虑是一个pyc文件 反编译之后查看源码 发现函数没有调用,所以无输出,手动给他加上 stegsolve打开发现有二维码,不完整,010editor看到有一个url 打开之后是另一张看起来一样的图,用bcomp ......
杂记 misc

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

C#使用iKvm黑科技无缝接入JVM生态

前言 时间过得飞快,一转眼国庆假期也要过去了,再不更新博客就太咸鱼了…… 最近在开发AIHub的时候想找个C#能用的命名实体识别库,但一直没找到,AI生态方面C#确实不太丰富,这块还是得Python,但我又不想跟LLM一样用gRPC的方式来调用,感觉有点麻烦。 这时候发现好像JVM生态有不少这类NL ......
无缝 生态 科技 iKvm JVM

JVM

目录问题查看jvm的所有参数,要怎么做? 问题 查看jvm的所有参数,要怎么做? 找到pid。jps / ps -ef | grep java 查看参数。jinfo -flags ${pid} Error attaching to process: java.lang.RuntimeExceptio ......
JVM

学习JVM---入门

1.JVM体系结构 JVM的位置 JVM体系结构 2.类加载器 双亲委派机制 package java.lang; /** * 测试自定义java.lang.String类能否运行成功 * 体会双亲委派机制 * * 类加载器逐级向上检查:app->ext->boot * 发现boot类加载器中也有S ......
JVM

ARM 架构的 JVM(Java 虚拟机)最高的免费版本是 OpenJDK 17

目前(截至 2023 年 9 月),ARM 架构的 JVM(Java 虚拟机)最高的免费版本是 OpenJDK 17。OpenJDK 17 是 Java SE 17 的开源实现,由 Oracle 和其他开源贡献者共同维护。你可以在 ARM 架构的设备上安装和使用 OpenJDK 17,它包含了 Ja ......
架构 OpenJDK 版本 Java ARM

没有星光的路:九月杂记

或许在日出日落,潮起潮退之间,人总是对时间没有什么感觉;可当我今天看向日期的时候,才反应过来,原来九月马上就要结束了。 回想这个月,几乎每周都有值得记录的事情发生:从一开始的开学,到后来我做出的一个选择、标志着新一个赛季开始的初赛、和一个并不是很知名的市赛。但这个月却让我感到和以往不同,因为这个月的 ......
杂记 星光

杂记 | 恍然临二十三度春秋

不知不觉中我的生命已经走过了二十二个春秋,这二十二载回望仿似大梦一场,无一作为,个中时日竟都禁不得细想,全然虚废了青春年华。 初初来时影作伴,而今回顾日当空。别阳关,故人熙熙攘攘,利来利往。只是尚不知人事,出口成祸,害了几多时光。最无奈待明白,人已去了。 幸而后路途,仍有旅友无数。知我故知,开我心门 ......
杂记

Java基础知识28--JVM参数调优 -Xms -Xmx -Xmn -Xss

1.jvm性能调优的最基本条件 首先我们要知道,垃圾回收器(GC)在回收内存空间时候,所有的工作线程都会暂停,待回收工作完成后,工作线程才会继续运行。如果GC太频繁,工作线程的效率和响应时间肯定会受影响,所以,jvm性能调优的最基本条件就是要尽可能地减少垃圾回收的次数。 2. Xms和Xmx参数为什 ......
基础知识 参数 基础 知识 Java

Linux命令杂记

可能不是很有序,但都是实用命令,不会面面俱到,多了容易记不住 find:查找文件命令。用法:find 路径 选项 搜索内容 递归搜索当前目录下的stdio.h文件 gcc:编译。 流程 常用选项 ......
杂记 命令 Linux