JoularJX

Purpose:: Java-based agent for software power monitoring at the source code level
Type:: #tool/dev

Website:: https://www.noureddine.org/research/joular/joularjx
Docs:: https://joular.github.io/joularjx/
Source Code:: https://github.com/joular/joularjx
Created by:: Adel Noureddine

Status:: 💡

Description

JoularJX is a Java-based agent for power monitoring at the source code level with support for modern Java versions and multi-OS to monitor power consumption of hardware and software.

JoularJX is a Java agent where you can simply hook it to the Java Virtual Machine when starting your Java program. To get power readings, JoularJX uses a custom PowerMonitor program (based on Intel Power Gadget API) on Windows, Intel RAPL (through powercap) on GNU/Linux, and our accurate power models on Raspberry Pi and similar devices.

The monitoring process is as follows:

Command line

java -javaagent:joularjx-$version.jar yourProgram

GUI

A GUI for JoularJX

JoularJX GUI allows developers to view and analyze the power and energy consumption of their Java applications for every method and for every execution branch.
The GUI reads the folders and files generated by JoularJX Java agent, and displays the results, along with analysis, in the interface.

🔗 References

Noureddine, A. (2022). PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools. 2022 18th International Conference on Intelligent Environments (IE), 1–4. https://doi.org/10.1109/IE54923.2022.9826760