Class AbstractCachedFunction<T extends FunctionValue>

java.lang.Object
de.tu_bs.isbs.util.math.functions.AbstractCachedFunction<T>
Type Parameters:
T -
All Implemented Interfaces:
UnivariateFunction

public abstract class AbstractCachedFunction<T extends FunctionValue>
extends java.lang.Object
implements UnivariateFunction
Alle bereits abgerufenen Funktionswerte werden in einem Cache gespeichert.
Author:
reiser
  • Constructor Details

  • Method Details

    • createFunctionValue

      protected abstract T createFunctionValue​(double x)
    • initialCacheCapacity

      protected final int initialCacheCapacity()
    • getFunctionValue

      public final T getFunctionValue​(double x)
      Specified by:
      getFunctionValue in interface UnivariateFunction<T extends FunctionValue>
    • clearCache

      public final void clearCache()
      Löscht alle im Cache gespeicherten Funktionswerte. Wird normalerweise nicht benötigt. Aufruf in Spezialfällen sinnvoll, um Speicherplatz-Problemen vorzubeugen: Wenn sehr viele Ergebnisse im Cache vorhanden sind, kann es sein, dass die Performance sehr stark einbricht; entweder weil der verfügbare Hauptspeicher zur Neige geht und der Garbage-Collector ständig arbeitet, oder weil evtl. die Hashmap degeneriert (degenerierende Hashmaps wurden z.B. mal als mögliches Ziel von D.O.S.-Attacken genannt -- ist allerdings nur eine Vermutung, dass dies hier zufällig auftreten könnte, wahrscheinlicher scheint Speichermangel als Grund für den Performance-Einbruch). Abhilfe schaffen durch Cache mit begrenzter Größe?
    • getCacheStatistics

      public final AbstractCachedFunction.CacheStatistics getCacheStatistics()