# BenchmarkBase

## Class BenchmarkBase

- java.lang.Object
- - BenchmarkBase

    public class BenchmarkBase
    extends java.lang.Object

Testet Set-Varianten auf ihre Effizenz

Version:
  November 2020
Author:
  Rainer Helfrich

### Field Summary

Fields
`protected Set` `theSet`
`(package private) java.util.Random` `zufallszahlen`

### Constructor Summary

Constructors
`protected` `BenchmarkBase()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`protected void` `init​(java.lang.Class c)`
`protected static int` `laufzeitTest​(java.lang.String typ, java.lang.String methode, int anzahl)` Führt einen Laufzeittest aus.
`static void` `main​(java.lang.String[] args)` Wird benötigt, um in einem neuen Prozess den Speichertest durchzuführen.
`protected static int` `speicherTest​(java.lang.String typ, java.lang.String methode, int anzahl)` Führt einen Speichertest aus.

### Methods inherited from class java.lang.Object

`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### theSet

    protected Set theSet

#### zufallszahlen

    java.util.Random zufallszahlen

### Constructor Detail

#### BenchmarkBase

    protected BenchmarkBase()

### Method Detail

#### init

    protected void init​(java.lang.Class c)
                 throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### main

    public static void main​(java.lang.String[] args)

Wird benötigt, um in einem neuen Prozess den Speichertest durchzuführen. Sollte nicht direkt aufgerufen werden.

#### laufzeitTest

    protected static int laufzeitTest​(java.lang.String typ,
                                      java.lang.String methode,
                                      int anzahl)

Führt einen Laufzeittest aus. Wiederholt den Test 100 mal, um Ausreißer zu vermeiden. Sollte nicht direkt aufgerufen werden.

Parameters:
  `typ` - Die Unterklasse von Set, die getestet werden soll
  `methode` - Der Name der Methode in der Klasse MeinBenchmark, die zum Testen ausgeführt werden soll
  `anzahl` - Ein Parameter für die Methode namens "methode", der z.B. die Anzahl der Operationen steuert
Returns:
  Die Laufzeit des Tests in Mikrosekunden (µs)

#### speicherTest

    protected static int speicherTest​(java.lang.String typ,
                                      java.lang.String methode,
                                      int anzahl)

Führt einen Speichertest aus. Sollte nicht direkt aufgerufen werden.

Parameters:
  `typ` - Die Unterklasse von Set, die getestet werden soll
  `methode` - Der Name der Methode in der Klasse MeinBenchmark, die zum Testen ausgeführt werden soll
  `anzahl` - Ein Parameter für die Methode namens "methode", der z.B. die Anzahl der Operationen steuert
Returns:
  Die Größe der Set in Bytes, nachdem die Testmethode ausgeführt wurde