hotspot/src/share/vm/gc/serial/defNewGeneration.cpp
changeset 40914 90c87069b39c
parent 40655 9f644073d3a0
child 41283 2615c024f3eb
--- a/hotspot/src/share/vm/gc/serial/defNewGeneration.cpp	Fri Sep 02 01:39:47 2016 +0000
+++ b/hotspot/src/share/vm/gc/serial/defNewGeneration.cpp	Fri Sep 02 09:49:10 2016 +0200
@@ -564,9 +564,18 @@
 
 void DefNewGeneration::adjust_desired_tenuring_threshold() {
   // Set the desired survivor size to half the real survivor space
-  GCPolicyCounters* gc_counters = GenCollectedHeap::heap()->gen_policy()->counters();
-  _tenuring_threshold =
-    age_table()->compute_tenuring_threshold(to()->capacity()/HeapWordSize, gc_counters);
+  size_t const survivor_capacity = to()->capacity() / HeapWordSize;
+  size_t const desired_survivor_size = (size_t)((((double)survivor_capacity) * TargetSurvivorRatio) / 100);
+
+  _tenuring_threshold = age_table()->compute_tenuring_threshold(desired_survivor_size);
+
+  if (UsePerfData) {
+    GCPolicyCounters* gc_counters = GenCollectedHeap::heap()->gen_policy()->counters();
+    gc_counters->tenuring_threshold()->set_value(_tenuring_threshold);
+    gc_counters->desired_survivor_size()->set_value(desired_survivor_size * oopSize);
+  }
+
+  age_table()->print_age_table(_tenuring_threshold);
 }
 
 void DefNewGeneration::collect(bool   full,