深入理解Java虚拟机
小白鼠丶
当时若不登高望,谁识东流海样深
展开
-
JVM快速找出耗内存大对象
1.找到进程号 ,使用top命令查看应用的系统的整体负载load average:1.单核CPU, 数字在0.00-1.00之间正常0.00-1.00 之间的数字表示此时路况非常良好,没有拥堵,车辆可以毫无阻碍地通过。1.00 表示道路还算正常,但有可能会恶化并造成拥堵。此时系统已经没有多余的资源了,管理员需要进行优化。1.00以上 表示路况不太好了,这种情况...原创 2020-03-05 12:02:55 · 4169 阅读 · 0 评论 -
OOM和StackOverflowError 笔记
SOFE之StackOverflowErrorOOM之Java heap space在JVM中如果98%的时间是用于GC(Garbage Collection)且可用的 Heap size 不足2%的时候将抛出异常信息,java.lang.OutOfMemoryError: Java heap space。所以产生这个异样的原因通常有两种: 1.程序中...原创 2020-03-04 21:50:09 · 817 阅读 · 0 评论 -
JVM垃圾收集器 以及如何查看GC日志
涉及的一些概念新生代DefNew:在Serial收集器中新生代名为Default New GenerationParNew:垃圾收集器ParNew中新生代名称就会变为[Parnew,意思为Parallel New GenerationPSYongGen:如果采用Parrallel Scavenge收集器,那么它配套的新生代名称为PSYongGen老年代同理,名称由垃圾收...原创 2020-03-04 20:48:37 · 1211 阅读 · 0 评论 -
垃圾收集器回收种类 以及七种垃圾收集器
垃圾收集器回收种类垃圾收集器是垃圾回收算法的具体实现串行垃圾回收器(Serial)它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停用户线程(并行垃圾回收器)Parallel多个垃圾收集器并行工作,此时用户线程是暂停的并发垃圾回收器(CMS)用户线程和垃圾收集线程同时执行(不一定是并行,可能是交替执行,不需要停顿用户线程)G1垃圾回收器G...原创 2020-03-04 18:10:17 · 958 阅读 · 0 评论 -
(三)JVM 逃逸分析 笔记
publicstaticStringBuffer craeteStringBuffer(Strings1,Strings2) { StringBuffer sb =newStringBuffer(); sb.append(s1); sb.append(s2); returnsb;}StringBuffer sb是一个方法内部变量,上述代码中直接将s...转载 2020-02-24 19:01:50 · 170 阅读 · 0 评论 -
运行时数据区 是否发生GC和内存溢出 笔记
HotSpot OOM GC PC × × 虚拟机栈 √ × 本地方法栈 √ × 堆 √ √ 方法区 √ √ 虚拟机栈没有垃圾回收的原因是:虚拟机栈只包括入栈和出栈两个操作...原创 2020-02-24 17:25:32 · 214 阅读 · 0 评论 -
(二)虚拟机栈 笔记
目录虚拟机栈概述栈的存储结构和运行原理栈桢的内部结构字节码中方法内部结构的剖析mian方法解析局部变量表变量槽slot的理解与演示操作数栈的特点涉及操作数栈的字节码指令执行分析动态链接的理解与常量池的作用虚拟机栈概述每个线程会创建一个虚拟机栈,其内部保存一个个的栈帧,对应着一次次的Java方法调用,生命周期和线程一样优点是跨平台,指令集小,编...原创 2020-02-24 17:15:57 · 366 阅读 · 0 评论 -
(一)JVM ClassLoader 笔记
类加载器子系统概述1. 类加载子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识2.ClassLoader只负责class文件的加载,至于它是否可以运行,则有Execution Engine决定。3.加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常...原创 2020-02-21 15:31:52 · 225 阅读 · 0 评论 -
常用的JVM参数
堆内存初始大小-Xms: 初始值的最小堆内存大小为机器的64分之1-Xmx: 初始值的最大堆内存大小为机器的4分之1设置单个线程栈的大小,一般默认512k到1024kXss 等价于:-XX:ThreadStackSize栈管运行,堆管存储默认值与平台有关元空间MetaSpaceSize大小-XX:MetaspaceSize=256m -XX:M...原创 2019-12-30 22:36:41 · 777 阅读 · 0 评论 -
JVM的参数类型以及学习笔记
JVM参数类型标配参数,x参数(了解),xx参数(重点)标配参数x参数(了解)指定JIT编译器的模式:-Xint,-Xcomp,-Xmixed我们知道Java是一种解释型语言,但是随着JIT技术的进步,它能在运行时将Java的字节码编译成本地代码。以下是几个相关的选项:-Xint表示禁用JIT,所有字节码都被解释执行,这个模式的速度最慢的。-Xcomp表示所有字...原创 2019-12-24 22:42:43 · 471 阅读 · 0 评论 -
GC Root总结
判断一个对象是否可以被回收1.引用计数法(了解即可)2.可达性分析参考文章:https://blog.csdn.net/qq_33366229/article/details/93194267#%E4%BB%80%E4%B9%88%E6%98%AF%E5%A4%A7%E5%AF%B9%E8%B1%A1%EF%BC%9A 所谓的'GC roots'或者说trac...原创 2019-12-23 22:05:02 · 6325 阅读 · 0 评论 -
JVM 运行时内存总结以及常见问题
JDK1.8运行时内存图片来自https://www.cnblogs.com/lijiasnong/p/9963841.html参考博客:方法区:https://www.jianshu.com/p/10584345b10a元空间:http://www.234plus.com/?p=203堆内存:https://blog.csdn.net/lingbo229/art...原创 2019-10-09 09:05:48 · 359 阅读 · 0 评论 -
GC四大算法
目录什么是GCGC四大算法前奏: 可达性分析什么是大对象:方法区如何判断是否需要回收正文引用计数法(JVM一般不采取这种算法)复制算法(copying)(年轻代使用)标记-清除算法(Mark-Sweep)(老年代使用)标记整理算法(Mark-Compact)(老年代使用)标记-清除-压缩(Mark-Sweep(标记清除算法)+Mark-C...原创 2019-06-21 17:05:11 · 2670 阅读 · 2 评论 -
如何调优JVM - 以及线上工具使用笔记
转载博客:https://www.cnblogs.com/jack204/archive/2012/07/02/2572934.html目录堆设置回收器选择 常见的垃圾回收器其它辅助信息JVM服务调优实战调优方案:参考资料 - JVM堆内存的分代年轻代年老代持久代 /永久代堆设置-Xmx3550m:设置JVM最大堆内存 为...原创 2019-06-21 14:48:50 · 885 阅读 · 0 评论