jvm
文章平均质量分 73
微笑浮沉
进步一点点,改变世界一点点
展开
-
JVM性能分析与定位
一分钟说明本文章主要是针对现网的cpu和内存性能分析,主要针对Java应用。涉及知识点:- top命令- jstack工具(查看线程)- jmap工具(查看内存堆栈)- jstat工具(监控资源和性能)- jvisualvm可视化工具(配合jmap一起使用)原创 2017-09-07 15:48:11 · 526 阅读 · 0 评论 -
jvm学习笔记(1)——java虚拟机内存区域
一、java内存区域: 1、程序计数器(线程私有): 内存中较小的内存空间,可以当做当前线程所执行字节码的行号指示器。如分支、循环、跳转、异常处理、线程恢复都需要依赖这个计数器完成。2、java虚拟机栈(线程私有): 也就是我们通常所说的“堆栈”中的栈。栈是由一个个栈帧组成的。栈帧中存放局部变量表、各种基本的数据类型(boolean、byte、char、sho...原创 2018-10-18 15:50:59 · 207 阅读 · 0 评论 -
jvm学习笔记(2)——java对象的内存布局
一、内存布局: 一个java对象在内存中可分为3个区域:对象头(Header)、实例数据(Instance Data)、对齐填充(Padding)。对象头(两部分): 对象自身运行时的数据。如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。 类型指针。即对象指向它的类元数据的指针,虚拟机通过这个指针确定这个对象是哪个类的实例。对象的访问定位就是通过...原创 2018-10-19 13:42:36 · 231 阅读 · 0 评论 -
jvm学习笔记(3)——java对象的内存分配和对象的回收(GC)
引言: 之前的文章已经提过,java对象实例是存放在堆上的,至于是在伊甸区、存活区还是老年区,这些都是从对象回收(GC)角度来进行的逻辑划分。所以我们先说对象的回收(GC),然后再依据GC的策略来说明新的对象具体在哪个区生成。 GC(Garbage Collection): 垃圾回收,指的就是jvm占用内存的回收。那么需要回答3个问题:哪些内存需要回收?——...原创 2018-10-19 18:37:06 · 562 阅读 · 0 评论 -
jvm学习笔记(4)——jvm配置调优
jvm相关配置参数: -server //开启服务端模式,虚拟机启动慢,但运行更加稳定。 -Xms1024m -Xmx1024m //JVM堆内存最小值(初始值),堆内存最大值。优化:建议设置为物理内存的1/4,建议设置成相同的,防止每次GC后调制堆的大小。 -Xmn256m //设置年轻代大小为2G。 优化:年轻代的大小,影响MinorGC发生的频率。年轻代的空间越大,...原创 2018-10-19 20:04:27 · 356 阅读 · 0 评论