随笔分类 - jvm
摘要:CMS和G1垃圾回收流程区别 CMS流程 —>初始标记(只标记最根上的对象STW) —>并发标记(百分之八十时间) —>重新标记(STW 并发标记过程中错标 重新标记) CMS和G1采用的三色标记,区别是CMS增量更新,G1采用的快照替换 —>并发清理(这个过程产生的垃圾叫浮动垃圾 只能等下一次CM
阅读全文
摘要:线上CPU占用过高 1.用top命令定位哪个进程对cpu占用过高 拿到进程id 2.top -Hp pid可以查看某个进程的线程信息,-H 显示线程信息,-p指定pid。 3.jstack 进程id 可以把进程中所有的线程列出来 此时列出来的线程编号是16进制的 4.步骤2的线程cpu过高id换算成
阅读全文
摘要:对象从出生到消亡过程 这也是jvm堆内存结构的详情:参考jvm内存区域 新生代概念(三分之一) 新生代分为一个eden区和两个survivor区,默认的比例是8:1:1 eden区是我们new出来对象之后往里面扔的那块区,回收一次跑到survivor 新生代大量死去少量存活 采用复制算法 思考:为什
阅读全文
摘要:java内存区域 1)程序计数器 因为java可以多线程并发执行,因此,为了线程切换后能恢复到正确的执行位置,每个线程都需要一个独立的程序计数器。记录正在执行的虚拟机字节码指令的地址。 这个区域不会产生内存溢出异常。 2)栈 java虚拟机栈 栈中主要存放了编译期可知的四类八种基本数据类型存(逻辑型
阅读全文