@@ -372,15 +372,6 @@ ZMemoryPressureMetrics ZAdaptiveHeap::memory_pressure_metrics() {
372372 container_critical_threshold = machine_critical_threshold;
373373 }
374374
375- // Record sampled memory usage so we can measure memory stability
376- const double machine_usage = double (machine_used_memory) / double (machine_max_memory);
377- ZStatSystemMemoryUsage::record_machine_usage (machine_usage);
378-
379- if (is_containerized) {
380- const double container_usage = double (container_used_memory) / double (container_max_memory);
381- ZStatSystemMemoryUsage::record_container_usage (container_usage);
382- }
383-
384375 return {
385376 unscaled_gc_intensity,
386377 is_containerized,
@@ -825,6 +816,7 @@ size_t ZAdaptiveHeap::compute_heap_size(ZHeapResizeMetrics* heap_metrics, ZGener
825816
826817 // System memory load
827818 ZMemoryPressureMetrics mem_metrics = memory_pressure_metrics ();
819+ ZStatSystemMemoryUsage::record (mem_metrics);
828820
829821 // System CPU load
830822 ZCpuPressureMetrics cpu_metrics = cpu_pressure_metrics (generation);
@@ -1096,10 +1088,8 @@ static uint64_t system_uncommit_delay(const ZSystemMemoryPressureMetrics& metric
10961088// How long to wait until it is time to uncommit memory. This goes towards
10971089// infinity when there is no concerning memory pressure, then from ZUncommitDelay
10981090// when concerning down to 500 when high, and eventually 0 when critically low.
1099- uint64_t ZAdaptiveHeap::uncommit_delay () {
1091+ uint64_t ZAdaptiveHeap::uncommit_delay (const ZMemoryPressureMetrics& metrics, size_t capacity ) {
11001092 precond (_initialized);
1101- ZMemoryPressureMetrics metrics = memory_pressure_metrics ();
1102- const size_t capacity = ZHeap::heap ()->capacity ();
11031093
11041094 const uint64_t machine_uncommit_delay = system_uncommit_delay (metrics._machine , capacity);
11051095
@@ -1111,6 +1101,17 @@ uint64_t ZAdaptiveHeap::uncommit_delay() {
11111101 return MIN2 (machine_uncommit_delay, container_uncommit_delay);
11121102}
11131103
1104+ uint64_t ZAdaptiveHeap::uncommit_delay () {
1105+ precond (_initialized);
1106+
1107+ ZMemoryPressureMetrics mem_metrics = memory_pressure_metrics ();
1108+ ZStatSystemMemoryUsage::record (mem_metrics);
1109+
1110+ const size_t capacity = ZHeap::heap ()->capacity ();
1111+
1112+ return uncommit_delay (mem_metrics, capacity);
1113+ }
1114+
11141115uint64_t ZAdaptiveHeap::soft_ref_delay () {
11151116 precond (_initialized);
11161117 ZStatHeap* const stats = ZGeneration::old ()->stat_heap ();
0 commit comments