< prev index next >

src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp

Print this page
*** 1,7 ***
--- 1,8 ---
  /*
   * Copyright (c) 2018, 2019, Red Hat, Inc. All rights reserved.
+  * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

*** 23,13 ***
   */
  
  #ifndef SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
  #define SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
  
  #include "gc/shenandoah/heuristics/shenandoahHeuristics.hpp"
- #include "gc/shenandoah/heuristics/shenandoahSpaceInfo.hpp"
  #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
  #include "utilities/numberSeq.hpp"
  
  class ShenandoahAllocationRate : public CHeapObj<mtGC> {
   public:
    explicit ShenandoahAllocationRate();
--- 24,14 ---
   */
  
  #ifndef SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
  #define SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
  
+ #include "memory/allocation.hpp"
  #include "gc/shenandoah/heuristics/shenandoahHeuristics.hpp"
  #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
+ #include "gc/shenandoah/shenandoahSharedVariables.hpp"
  #include "utilities/numberSeq.hpp"
  
  class ShenandoahAllocationRate : public CHeapObj<mtGC> {
   public:
    explicit ShenandoahAllocationRate();

*** 37,11 ***
  
    double sample(size_t allocated);
  
    double upper_bound(double sds) const;
    bool is_spiking(double rate, double threshold) const;
- 
   private:
  
    double instantaneous_rate(double time, size_t allocated) const;
  
    double _last_sample_time;
--- 39,10 ---

*** 136,8 ***
--- 137,14 ---
  
    // Keep track of the available memory at the end of a GC cycle. This
    // establishes what is 'normal' for the application and is used as a
    // source of feedback to adjust trigger parameters.
    TruncatedSeq _available;
+ 
+   // A conservative minimum threshold of free space that we'll try to maintain when possible.
+   // For example, we might trigger a concurrent gc if we are likely to drop below
+   // this threshold, or we might consider this when dynamically resizing generations
+   // in the generational case. Controlled by global flag ShenandoahMinFreeThreshold.
+   size_t min_free_threshold();
  };
  
  #endif // SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
< prev index next >