使用G1收集器时,为什么-XX:+ ExplicitGCInvokesConcurrent不是默认值?

亚历山大·德·尚佩

在内存数据库的情况下,我们将堆外内存与热点的G1收集器结合使用。

但是,当堆外内存使用量达到MaxDirectMemorySize时,JDK代码会使用触发完整的GC System.gc()这将导致世界GC长期而痛苦的停止,这似乎也将所有当前的直播设置放到了旧一代中,绕过了幸存者(从而增加了裙带关系问题)。设置时不会发生这种情况-XX:+ExplicitGCInvokesConcurrent:GC速度更快,并且尊重幸存者。

由于System.gc()JDK在内部使用了某些东西,为什么热点中默认不启用此选项?这个标志会引起理论上的或实际的问题吗?还是仅出于兼容性原因?是否有人在生产环境中使用过此选项,并且遇到过问题?

亚历山大·德·尚佩

从表面上看,JDK人员还没有回答这个问题(请参阅Charlie Hunt在JDK-8071770上的评论)。

到目前为止,我发现使用此选项的唯一缺点是,默认情况下,并发GC不会卸载类(请参见JDK-6541037)。但是,如果这是您的问题,则可以使用-XX:+ ExplicitGCInvokesConcurrentAndUnloadsClasses。

编辑2017:针对JDK10的具有相同问题的特定票证已打开:JDK-8160392

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java:为什么未使用XX:SurvivorRatio的默认值?

来自分类Dev

-XX:+ UseConcMarkSweepGC(默认的年轻代收集器是什么?)

来自分类Dev

为什么nullglob不是默认值?

来自分类Dev

G1比Java 7上的默认垃圾收集器慢

来自分类Dev

为什么constexpr不是所有函数的默认值?

来自分类Dev

为什么`ffmpeg`的`-hide_banner`不是默认值?

来自分类Dev

为什么需要“-人类可读”而不是默认值?

来自分类Dev

使用默认值而不是丢弃值压缩?

来自分类Dev

使用默认值而不是丢弃值压缩?

来自分类Dev

javascript:使用IF语句而不是OR设置默认值

来自分类Dev

Windows Powershell 使用 python Ping 而不是默认值

来自分类Dev

为什么我可以使用默认的<=>而不是用户提供的默认值调用==?

来自分类Dev

ObservedObject仅传递其默认值。不是其分配的值。为什么?

来自分类Dev

为什么使用指针而不是直接实例化对象时不使用类成员的默认值?

来自分类Dev

为什么C标准C11在gcc中不是默认值?

来自分类Dev

为什么$ params从配置文件中获取值,而不是从默认值中获取值?

来自分类Dev

为什么switch语句中不是默认值的每种情况都属于例外情况?

来自分类Dev

在Haxe开关/案例中,是否可以将案例'xx':与默认值混合?

来自分类Dev

使用:=时,为什么with = TRUE是默认值?

来自分类Dev

自定义Json序列化器,而不是Jersey的默认值?

来自分类Dev

如何识别编译器变量值不是默认值?

来自分类Dev

在python中访问多维字典时,如何返回默认值而不是键错误?

来自分类Dev

当 dbPath 不是默认值时,如何查询数据库?MongoDB

来自分类Dev

当包含 Shape 的组的比例不是默认值时如何在 JavaFX 中绘制形状

来自分类Dev

AutoMapper 映射到 Enum 默认值而不是在 null 时跳过

来自分类常见问题

为什么“ asdf” .replace(/.*/ g,“ x”)==“ xx”?

来自分类Dev

配置EF6以使用varchar作为默认值而不是nvarchar?

来自分类Dev

如何告诉OSX使用brew中的matplotlib,而不是默认值?

来自分类Dev

如果PostDataflowBlockOptions.BoundedCapacity不是默认值,是否避免使用ActionBlock <TInput> .Post?

Related 相关文章

  1. 1

    Java:为什么未使用XX:SurvivorRatio的默认值?

  2. 2

    -XX:+ UseConcMarkSweepGC(默认的年轻代收集器是什么?)

  3. 3

    为什么nullglob不是默认值?

  4. 4

    G1比Java 7上的默认垃圾收集器慢

  5. 5

    为什么constexpr不是所有函数的默认值?

  6. 6

    为什么`ffmpeg`的`-hide_banner`不是默认值?

  7. 7

    为什么需要“-人类可读”而不是默认值?

  8. 8

    使用默认值而不是丢弃值压缩?

  9. 9

    使用默认值而不是丢弃值压缩?

  10. 10

    javascript:使用IF语句而不是OR设置默认值

  11. 11

    Windows Powershell 使用 python Ping 而不是默认值

  12. 12

    为什么我可以使用默认的<=>而不是用户提供的默认值调用==?

  13. 13

    ObservedObject仅传递其默认值。不是其分配的值。为什么?

  14. 14

    为什么使用指针而不是直接实例化对象时不使用类成员的默认值?

  15. 15

    为什么C标准C11在gcc中不是默认值?

  16. 16

    为什么$ params从配置文件中获取值,而不是从默认值中获取值?

  17. 17

    为什么switch语句中不是默认值的每种情况都属于例外情况?

  18. 18

    在Haxe开关/案例中,是否可以将案例'xx':与默认值混合?

  19. 19

    使用:=时,为什么with = TRUE是默认值?

  20. 20

    自定义Json序列化器,而不是Jersey的默认值?

  21. 21

    如何识别编译器变量值不是默认值?

  22. 22

    在python中访问多维字典时,如何返回默认值而不是键错误?

  23. 23

    当 dbPath 不是默认值时,如何查询数据库?MongoDB

  24. 24

    当包含 Shape 的组的比例不是默认值时如何在 JavaFX 中绘制形状

  25. 25

    AutoMapper 映射到 Enum 默认值而不是在 null 时跳过

  26. 26

    为什么“ asdf” .replace(/.*/ g,“ x”)==“ xx”?

  27. 27

    配置EF6以使用varchar作为默认值而不是nvarchar?

  28. 28

    如何告诉OSX使用brew中的matplotlib,而不是默认值?

  29. 29

    如果PostDataflowBlockOptions.BoundedCapacity不是默认值,是否避免使用ActionBlock <TInput> .Post?

热门标签

归档