JVM
mllhxn
这个作者很懒,什么都没留下…
展开
-
jvm复习笔记1
1;类加载 在java代码中,类型的加载,链接与初始化过程都是在程序运行奇迹完成的2;jvm与程序的生命周期执行 system.exit() ,正常结束,遇到异常,系统出现错误导致进行终止3;类的加载,链接与初始化加载:查找并加载类的二进制数据连接: 验证:确保被加载的类的争取性 准备:为类的静态变量分配内存,并将其初始化为默认值 解析:把类中的符号引用转换为直接引用初...转载 2018-02-10 12:01:05 · 148 阅读 · 0 评论 -
JVM 基础 VM运行机制
1,JVM启动流程2,JVM基本结构方法区保存装载的类信息类型的常量池字段,方法信息方法字节码通常和永久区(Perm)关联在一起Java堆和程序开发密切相关应用系统对象都保存在Java堆中所有线程共享Java堆对分代GC来说,堆也是分代的GC的主要工作区间Java栈线程私有栈由一系列帧组成(因此Java栈也叫做帧栈)帧保存一个方法的局部变量、操作数...原创 2015-09-20 22:47:00 · 1030 阅读 · 0 评论 -
jvm 常用JVM配置参数
本文主要内容:Trace跟踪参数 堆的分配参数 栈的分配参数一、Trace跟踪参数:1、打印GC的简要信息: -verbose:gc-XX:+printGC 解释:可以打印GC的简要信息。比如:[GC 4790K->374K(15872K), 0.0001606 secs][GC 4790K->374K(15872K), 0.0...原创 2015-10-02 08:54:35 · 566 阅读 · 0 评论 -
JVM GC算法和种类
本文主要内容:GC的概念 GC算法 引用计数法(无法解决循环引用的问题,不被java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法: 标记-清除 复制算法(新生代) 标记-压缩(老年代) 分代收集 Stop-The-World 一、GC的概念:GC:Garbage Collectio...原创 2015-10-02 11:03:25 · 560 阅读 · 1 评论 -
JVM 垃圾收集器及GC参数
本文主要内容:堆的回顾 串行收集器 并行收集器 CMS收集器 零、堆的回顾:新生代中的98%对象都是“朝生夕死”的,所以并不需要按照1:1的比例来划分内存空间,而是将内存分为一块比较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor。当回收时,将Eden和Survivor中还存活着的对象一次性地复制到另外一块Survivor空间上,最后...原创 2015-10-06 10:07:31 · 424 阅读 · 0 评论 -
jstack性能问题定位案例分析详解
在Java应用的性能测试中,很多性能问题可以通过观察线程堆栈来发现,Jstack是JVM自带dump线程堆栈的工具,很轻量易用,并且执行时不会对性能造成很大的影响。灵活的使用jstack可以发现很多隐秘的性能问题,是定位问题不可多得的好帮手。1什么是线程堆栈线程堆栈也称作线程调用堆栈。Java线程堆栈是虚拟机中线程(包括锁)状态的一个瞬间快照,即系统在某个时刻所有线程的运行状态,包括每...转载 2018-07-23 16:58:54 · 994 阅读 · 0 评论 -
记一次耗时毛刺排查
前段时间的某天,注意到一个服务的平均耗时出现了如下图的毛刺现象。 耗时毛刺 注意到毛刺出现极其规律,每30分钟出现一个毛刺。考虑到这种规律性,并结合服务的流量较小(20 QPS)推测,可能是某个定时请求的接口进行了耗时操作,由于流量较小放大了平均耗时,继而出现了毛刺。但排查主调调用的接口,并没有发现定时的调用,从而否定了这种可能性。排除服务外部的原因导致的毛刺,那么只剩下服务...转载 2018-07-23 17:00:23 · 3764 阅读 · 1 评论 -
Java8内存模型—永久代(PermGen)和元空间(Metaspace)
一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,会抛...转载 2018-07-20 16:45:26 · 193 阅读 · 0 评论 -
Eclipse MAT(Memory Analyzer Tool)使用
MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。JVM 能够记录下问题发生时系统的部分运行状态,并...转载 2018-07-19 15:41:30 · 185 阅读 · 0 评论 -
JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不...转载 2018-07-19 15:34:37 · 147 阅读 · 0 评论 -
jvm 类的加载
mark转载 2018-03-23 10:31:23 · 143 阅读 · 0 评论 -
jvm 基础 性能监控工具
pidstat细致观察进程需要安装sudo apt-get install sysstat监控CPU监控IO监控内存jps列出java进程,类似于ps命令参数-q可以指定jps只输出进程ID ,不输出类的短名称参数-m可以用于输出传递给Java进程(主函数)的参数参数-l可以用于输出主函数的完整路径参数-v可以显示传递给JVM的参数 jps -m -l -...原创 2015-09-22 22:53:03 · 541 阅读 · 0 评论