我写了一个简单的程序,它无限地将对象加入到集合中,我想看看PrintTenuringDistribution选项的标准输出:
public static void main(String[] args) {
while (true) {
persons.add(new Person("jorik", "kornev"));
}
}
作为程序输出我得到了:
Desired survivor size 5242880 bytes, new threshold 7 (max 15)
Desired survivor size 5242880 bytes, new threshold 7 (max 15)
Desired survivor size 5242880 bytes, new threshold 7 (max 15)
其实我建议我会得到这样的东西:
Desired survivor size 75497472 bytes, new threshold 15 (max 15)
- age 1: 19321624 bytes, 19321624 total
- age 2: 79376 bytes, 19401000 total
- age 3: 2904256 bytes, 22305256 total
我正在使用带有VM选项的JDK 1.7.0_79:
-XX:+PrintTenuringDistribution -XX:+UseParallelGC
那么,你能否告诉我我做错了什么以及如何获得所需的输出。
谢谢,Evgeniy
答案 0 :(得分:5)
根据this blog post它按预期工作。
嗯,这是预期的行为而不是错误。吞吐量 收藏家不像其他收藏家那样使用年龄表。和 由于这个原因,年龄直方图信息不打印 吞吐量收集器。使用吞吐量收集器,我们只能 查看所需的幸存者大小,阈值年龄和最大值 PrintTenuringDistribution选项的阈值年龄。