性能问答>jvm系列课程里边说堆的大小是512k的最小公倍数,为啥我测试不是这样呢?>
2回复
2年前

jvm系列课程里边说堆的大小是512k的最小公倍数,为啥我测试不是这样呢?



image.png
image.png

按理说应该是1024+512=1536才对,现在是2097152/1024(2048)

是我理解错了?

3072 阅读
请先登录,再评论

👍,我当时记错了,刚看了下代码,是还要512*一个page_size,也就是4096

enum SomePublicConstants {
    card_shift                  = 9,
    card_size                   = 1 << card_shift,
    card_size_in_words          = card_size / sizeof(HeapWord)
  };

uintx CardTableModRefBS::ct_max_alignment_constraint() {
  return card_size * os::vm_page_size();
}

会按照ct_max_alignment_constraint的返回值对齐,其中card_size是512,os::vm_page_size()是4096,也就是2M对齐

2年前
回复 你假笨:

多谢大神指点,那就是可以理解为2M的最小公倍数

2年前回复