jvm
行走的歌声
这个作者很懒,什么都没留下…
展开
-
jvm内存模型以及jvm性能调优
一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Old(年老代)永久代(Perm) 其中New和Old属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:PermSize -XX:MaxPermSize 等参数调整其大小。 年轻代(New):年轻代用来存放JVM刚分配的...转载 2018-03-28 14:57:45 · 489 阅读 · 0 评论 -
JVM中类加载过程,里面执行的哪些操作?GC和内存管理是什么
java堆(JavaHeap)1.用来存放对象的,几乎所有对象都放在这里,被线程共享的,或者说是被栈共享的2.堆又可以分为新生代和老年代,实际还有一个区域叫永久代,但是jdk1.7已经去永久代了,所以可以当作没有,永久代是当jvm启动时就存放的JDK自身的类和接口数据,关闭则释放。新生代可以分为Eden区和两个幸存区,这么设计是为了更好地利用内存 之前的设计是只分为两部分一样一半 后来发现这样...原创 2018-03-28 15:02:37 · 1117 阅读 · 0 评论 -
YGC和GFC
1.YGC和FGC是什么 YGC :对新生代堆进行gc。频率比较高,因为大部分对象的存活寿命较短,在新生代里被回收。性能耗费较小。 FGC :全堆范围的gc。默认堆空间使用到达80%(可调整)的时候会触发fgc。以我们生产环境为例,一般比较少会触发fgc,有时10天或一周左右会有一次。2.什么时候执行YGC和FGC a.edn空间不足,执行 young gc b.old空间不足,...原创 2018-03-28 15:31:24 · 1562 阅读 · 0 评论 -
jstack,jmap,jutil分别的意义
1.Jstack 1.1 jstack能得到运行java程序的java stack和native stack的信息。可以轻松得知当前线程的运行情况。如下图所示 注:这个和thread dump是同样的结果。但是thread dump是用kill -3 pid命令,还是服务器上面少用kill为妙 1.2 命名行格式 jstack [ option ] pid jstack [ option ...原创 2018-03-28 15:38:51 · 7356 阅读 · 3 评论