Blogpost

Energieverbrauchsmessung von JUnit Tests durch die jPowerMonitor Extension

Für Green Coding sind Tools zur Energieverbrauchsmessung notwendig. In diesem Beitrag wird genauer beschrieben, was die JUnit-Extension des jPowerMonitor misst und wie sie zu verwenden ist.

340
2 Minuten Lesezeit
Green Coding - Energieverbrauchsmessung

In dieser Collection enthalten:

Collection öffnen

Wie im Blogbeitrag „Green Coding – Energieverbrauch von Software messen“ beschrieben wurde, wollen wir sowohl mit dem Java Agent als auch mit der JUnit Extension des jPowerMonitors eine aktuell noch bestehende Lücke in den bereits etablierten Tools zur Energieverbrauchsmessung schließen. Was sind Unittests und wie kann die Extension richtig eingesetzt werden? Diese Fragen beantworten wir im Folgenden.

Unittests

Unittests sind seit langem fester Bestandteil des Softwareentwicklungsprozesses. Tests bieten diverse Vorteile und werden regelmäßig über den Entwicklungs- und Wartungsprozess hinweg verwendet.1 Unsere Extension könnte neuer Bestandteil des etablierten Java-Unittestings mit JUnit werden. Sie soll Softwareentwickler in ihrer täglichen Arbeit unterstützen, wobei die Verwendung möglichst einfach und unkompliziert sein soll.

Verwendung der Extension

Um die JPowerMonitorExtension zu registrieren und damit für die eigenen Unittests zu verwenden, wird der Test mit @ExtendWith annotiert. Die Annotation kann mehrfach zu einem Test hinzugefügt werden oder eine Liste von Extensions als Parameter enthalten.2

Registrierung der jPowerMonitor-Unittest-Extension

Abbildung 1: Beispiel für Registrierung der jPowerMonitor-Unittest-Extension

Am besten werden die Testfälle als @RepeatedTests3 ausgeführt. Bei der Annotation kann angegeben werden, wie oft ein Test wiederholt werden soll, beispielsweise immer zehnmal. Im Ergebnis-CSV kann dann der Durchschnitt der Ergebnisse berechnet werden. Durch die Wiederholung und die Berechnung des Durchschnittes werden die Messergebnisse genauer und aussagekräftiger.

Beispiel für RepeatedTest

Abbildung 2: Beispiel für RepeatedTest

Messergebnisse

Die Extension ermöglicht es, den Energieverbrauch einzelner Unittests zu ermitteln und in eine CSV-Datei zu schreiben. Diese CSV-Datei kann für spätere Überwachung und Analysen genutzt werden und enthält alle berücksichtigten Messpunkte.

Beispiel einer Ergebnis-CSV

Abbildung 3: Beispiel einer Ergebnis-CSV

Folgende Elemente werden ausgegeben:

  1. Uhrzeit des Tests
  2. Name des gemessenen Testfalls
  3. Sensor bzw. Rechnername
  4. Messwert inklusive Einheit (W)
  5. Grundlast inklusive Einheit (W)
  6. Verbrauchte Energie inklusive Einheit (Wh)
  7. Energiewert + Grundlast inklusive Einheit (Wh)

Fazit

Wir haben unser Ziel, mit der JUnit-Extension die Energieverbräuche verschiedener Implementierungen eines Algorithmus zu vergleichen, erreicht. Damit kann eine bestehende Lücke in den etablierten Tools zur Energieverbrauchsmessung geschlossen werden. Wie unser Beispiel zeigt, ist der Einsatz der JUnit-Extension einfach und unproblematisch möglich, wobei das wiederholte Ausführen der Tests zu verlässlicheren Messergebnissen führt.

Quellen
Sustainable Banking

Sustainable Banking

Nachhaltigkeit ist aus der Branche Banking nicht mehr wegzudenken. Treiber sind zum einen die Initiativen von Gesetzgebern und Regulatoren. Aber auch Kunden stellen vermehrt nachhaltige, umweltfreundliche und klimaschonende Aspekte in den Mittelpunkt ihrer Finanzentscheidungen. Um den langfristigen ökonomischen Erfolg zu sichern sowie die regulatorischen Hürden zu meistern, müssen Banken frühzeitig ihre Geschäftstätigkeit auf Nachhaltigkeitsziele ausrichten und fit sein für den Umgang mit Nachhaltigkeitsrisiken.

Wie sieht die optimale Vorbereitung auf eine nachhaltige Zukunft in der Branche Banking aus? Dieser Frage gehen wir in unserer Serie Sustainable Banking auf den Grund. Mehr Informationen zu diesem Zukunftsthema finden Sie auf unserer Webseite.

Sara Jackson

Sara Jackson

ist bei der msg GillardonBSM in der Business Analyse im Bereich Digital Banking tätig.

Schreiben Sie einen Kommentar

Sie müssen sich anmelden, um einen Kommentar zu schreiben.