JVM
流浪车手
每天都希望自己进步一点点。
展开
-
为什么会有stop the world
首先,我们知道java中的引用主要存在于方法区和堆栈区。当jvm运行对象存活判定算法的时候,如果当前环境下,对象之间的引用还在发生变化,那么这个算法几乎没法执行,所以常常需要STW来维持秩序。...原创 2019-06-17 11:04:52 · 2102 阅读 · 0 评论 -
为什么JVM规范中,程序计数器不会发生OutOfMemoryError
首先,我们熟悉的栈和堆,都是可以通过运行时对内存需求的扩增导致内存不够用的情况比如某个线程递归调用,随着调用层次的加深,可能会出现栈空间不足的情况,这时候如果可以动态扩增,jvm就会向申请更多的内存空间来扩充栈,当没有更多的内存空间得以申请的时候,就会发生OutOfMemoryError。但是,程序计算器仅仅只是一个运行指示器,它所需要存储的内容仅仅就是下一个需要待执行的命令的...原创 2019-06-11 16:59:19 · 6418 阅读 · 4 评论 -
GC收集器:Parallel Scavenge收集器和CMS收集器
Parallel Scavenge收集器是针对青年代的垃圾收集器。这个收集器可以自己调整参数,从而控制吞吐量。吞吐量:在java程序背景环境下,CPU执行用户程序代码的时间占CPU总执行时间的比值。停顿时间:GC过程中,STW的时间。其中吞吐量和停顿时间是有千丝万缕的关系的,它们之间相互影响着。我觉得这个收集器最大的优点就是,可以自调整收集器的一些参数配置,如青年代内存大小或者...原创 2019-06-25 11:14:23 · 1014 阅读 · 0 评论