首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jvm的安全点不理解?

jvm的安全点不理解?

提问于 2022-04-14 22:49:34
回答 0关注 0查看 62

安全点

在OopMap的帮助下,HotSpot可以快速的完成GC Root的枚举,但是随着引用变化,不可能每次指令都生成新的OopMap。实际上只有“特定的位置”才会暂停开始GC,这个位置叫做安全点(Safepoint)。Safepoint的选定既不能太少以至于GC等待时间过长,也不能太频繁以至于增大运行时负荷。

怎么选安全点呢?

安全点的选择不能太少,太少会导致GC时间过长,如果太多会导致频繁GC,所以选择了:循环的末尾、方法返回前、调用方法之后、抛异常的位置 作为安全点。

看了很多,都是这样写的。我有几处不理解

1、太多为何频繁GC,gc不是因为内存分配不够了才gc吗,和安全点有啥关系

2、为何选这几种地方,说是长时间执行?指令复用。啥意思呢,怎么复用就有OopMap

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档