Re: [问题] JVM的校调

楼主: KekeMonster (KekeMonster)   2014-09-23 10:48:32
※ 引述《ireullin (raison detre)》之铭言:
: 抱歉
: 我想厘清一下我的问题
: 所以如果问了奇怪的东西请大家多多包涵
: 谢谢网友提供的图
: http://imgur.com/Jm0gPUe
: 不知道这张图的出处是在?
: 是否还有其他资讯可参考?
: 所以 serial, ParNew, Parallel Scavenge
: 主要是负责young generation
: 而CMS, Parallel Old, Serial Old
: 负责Tenured generation?
: 是指这样吗

: 然后JVM其实底下有多个GC在运作?
: 只是何时会触发那一个GC
: 并不是我们能决定的?
: 若没有特别去关闭或开启哪个GC
: 则是由JVM自行去决定
: 是这样吗?
: 我们是否可以得知目前JVM有使用哪几个GC?
在没有任何配置的情况下,
JVM 会依据版本以及系统资源决定所使用的 GC 算法,
e.g. 32-bit JVM 或者是单核心的系统默认使用单绪算法;
64-bit JVM 默认使用多绪算法... etc
young/tenured generation 各自只会有一个 GC 算法的设定,
不是在执行时间让 JVM 去决定的...
如我之前的回文,
你若要确认目前 JVM 所启用的 GC 算法, 可以透过 GC Log 或者是 JConsole
: servivor这内存有两块
: 用意是?
: GC算法中有提到一个 copying algorithm
: 是否是这边采用的?
: 所以其他部分都只有使用mark-sweep与mark-compact?
Young gen GC 动作就是在 eden 跟 S0 空间中找出尚有参照的物件,
复制到 S1 之后把 eden 跟 S0 清空;
下一个 minor GC 循环则是在 eden 跟 S1 空间中找出尚有参照的物件,
复制到 S0 之后把 eden 跟 S1 清空;
这个复制循环会增加物件的 "岁数",
到达一定的岁数后则是移到 tenured gen...
Survivor space 主要的目的就是为了速度,
内存空间的互相复制相当的快,
而且也不需要进行 compaction
: 有网友推荐
: 直达 Java 虚拟机器-JVM 进阶与应用
: 这本我已经在看了
: 可能我没有读透
: 其实我这些问题是从这里头衍生出来的
: 再请大家赐教了
作者: ireullin (raison detre)   2014-09-23 11:33:00
谢谢您的回答喔^^

Links booklink

Contact Us: admin [ a t ] ucptt.com