
JVM零碎学习
hello kitty w
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
cpu使用率过高和jvm old占用过高排查过程
CPU过高排查过程后序待补充转载 2021-09-12 19:16:58 · 223 阅读 · 0 评论 -
浅谈JVM调优
JVM调优小白,理论知识走一波首先如果条件允许(内存在8G以上)选择G1,领先PN+CMS和PS+PO不只是一两个数量级。但是我们更期待ZGC的到来,在ZGC成为stable之前还是得有一点点了解。吞吐量优先,选择PS+PO低延迟选择PN+CMS几个重要的参数-XX:MaxTenuringThreshold=2 表示该对象经过多少次GC后晋升到老年代,但是JVM在进行GC时也会判断年轻代一半以上的对象的最小年龄,把大于该年龄的晋升到老年代。-XX:ParallelGCThreads=4 .原创 2021-09-12 17:34:39 · 318 阅读 · 1 评论 -
方法区概述
存储的是什么方法区是非堆区,独立于堆的内存空间,受本地内存限制,不建议指定方法区大小,因为你无法掌握到底有多少个类被加载,同样的是线程共享的存储有:类元信息(类模板信息)常量静态变量即时编译后的代码缓存堆、栈、方法区的关系如何解决这些OOM通过堆dump,拿到dump文件,判断到底是内存泄露还是内存溢出如果是内存泄露找出GC Roots的引用链,存w...原创 2021-09-06 21:00:32 · 121 阅读 · 0 评论 -
2、崩溃文件(Crash Dump Core FIles)
默认情况下所有的操作系统都会在操作系统状态发生变化,或者说发生了异常时,会生成系统级别的崩溃日志,对应的JVM也创造了类似的机制。一般情况下,JVM会创造两种类型的崩溃文件,即文本形式的、二进制形式的。文本形式的叫Dump文件,二进制形式的叫Mdmp(Windows)或Core(Linux)文件。两种文件的文件名一般都是.dump之类的,Pid就是我们的应用程序的进程号。文本形式的Dump文件包...原创 2019-03-30 23:31:31 · 2256 阅读 · 0 评论 -
1、Spring的intern方法
首先讲解一下new String()和 ““建立对象的区别:1、String a1 = new String(“a”); //会首先在堆中建立a这个字符串,并且让a1指向堆,然后看常量池中是否存在a这个字符串,如果不存在则新建,存在则算了,但是这并不影响a1仍然指向的是堆中的a2、String a2 = “a”; //如果常量池中存在则直接指向,如果不存在则在常量池中建立,然后指向因此...原创 2019-03-27 22:28:08 · 799 阅读 · 0 评论 -
3、JVM中的堆、栈、方法区等基本结构介绍
1、首先是JVM的启动流程2、JVM的基本结构2.1 基本结构之PC寄存器每个线程拥有一个PC寄存器在线程创建时 创建指向下一条指令的地址执行本地方法时,PC的值为undefined2.2 基本结构之方法区(存放的是装载的类的信息)2.3 基本结构之堆注意:线程共享,堆分代,对象的存放处2.4 基本结构之栈栈也叫栈帧,线程私有,帧保存的是局部变量,操作数栈,常量池指针...原创 2019-07-31 21:22:25 · 171 阅读 · 0 评论 -
JVM题目和自己的解法(持续更新)
1、写一个程序,让程序在运行之后,最终抛出由于Perm区溢出引起的OOM,给出运行的jdk版本,程序源码,运行参数,以及系统溢出后的截图、程序所依赖的jar包说明,并说明你的基本思路参考添加链接描述想要perm抛出Oom,首先要知道oom存放什么数据: 类型的常量池, 字段、方法信息 ,方法字节码由于Java想要动态创建字段、class信息需要引用到第三方Jar包。所以这个地方我利用无...原创 2019-07-31 21:58:09 · 227 阅读 · 0 评论 -
4、常用JVM参数配置
JVM参数配置原创 2019-08-01 22:29:37 · 227 阅读 · 0 评论