首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >默认情况下,是否启用了G1垃圾收集器的字符串删除功能?

默认情况下,是否启用了G1垃圾收集器的字符串删除功能?
EN

Stack Overflow用户
提问于 2017-10-03 04:51:09
回答 1查看 6.8K关注 0票数 15

在Java8Update 20中实现的http://openjdk.java.net/jeps/192增加了新的字符串去重复功能:

通过增强G1垃圾收集器来减少Java堆活动数据集,这样重复的字符串实例就会自动和持续地去重复。

JEP页面提到,命令行选项UseStringDeduplication (bool)允许启用或禁用“增强功能”。但是JEP页面并没有显示缺省值。

默认情况下,G1垃圾收集器中的➠是与Java8和Java9捆绑在一起的,是打开还是关闭的?

➠有在运行时验证当前设置的“getter”方法吗?

我不知道在JEP页面之外在哪里查找文档。

至少在Java9的https://en.wikipedia.org/wiki/HotSpot-equipped实现中,G1垃圾收集器默认启用。这一事实现在引发了这个问题。有关字符串实习生和去重复的更多信息,请参见29:00的2014-10年度由Aleksey Shipilev介绍

EN

回答 1

Stack Overflow用户

发布于 2017-10-03 05:49:59

虽然吉加尔精确地提供了了解JVM标志和统计数据的方法,但是仍然可以链接到一些解决这部分问题的有用文档:

我不知道在JEP页面之外在哪里查找文档.

  • Java9发行说明使用以下行描述了http://openjdk.java.net/jeps/248的实现-

在JDK 9中,当没有显式指定垃圾收集器时,默认的垃圾收集器是G1。

  • 详细说明标志使用情况的java工具。 -XX:+UseStringDeduplication

启用字符串去重复。默认情况下,此选项已禁用。若要使用此选项,必须启用垃圾优先(G1)垃圾收集器。 通过利用许多字符串对象是相同的这一事实,字符串去重复减少了Java堆上字符串对象的内存占用。与指向其自己的字符数组的每个字符串对象不同,相同的字符串对象可以指向并共享相同的字符数组。

也在此讨论公开问题,如果

Java 9没有打印字符串去复制统计信息的选项.

使用-Xlog中的http://openjdk.java.net/jeps/158实现,垃圾收集器标志被标记为遗留标记,而跟踪垃圾收集器标志的替代方式是使用Java9特性。这里列出了用于将GC日志标记转换为Xlog的替换的详细列表。其中一项建议

代码语言:javascript
复制
PrintStringDeduplicationStatistics  =>   -Xlog:stringdedup*=debug
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46537415

复制
相关文章

相似问题

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