
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.
Download
- The source code and binaries of JoularJX are available at our JoularJX GitHub repository.
We currently support Windows, macOS, and Linux environments, on PC/servers and Raspberry Pi devices, along with virtual machines.
Documentation
- The full and detailed documentation of JoularJX is available at the JoularJX documentation page.
Usage
JoularJX is a Java agent where you can simply hook it to the Java Virtual Machine when starting your Java program:
java -javaagent:joularjx-$version.jar yourProgram
You can watch a demo video of JoularJX at : https://mediakiosque.univ-pau.fr/video/12959-powerjoular-and-joularjx-multi-platform-software-power-monitoring-tools/



News
- 07/2024: I've released version 3.0.0 of JoularJX, with support for monitoring energy of Java methods and branches in virtual machines. Check it out at our GitHub page.
- 04/2024: I've released version 2.9.0 of JoularJX which now uses Hubblo's Windows RAPL driver instead of the deprecated Intel Power Gadget API to get the CPU power consumption in Windows. Check it out at our GitHub repo.
- 03/2024: We released version 2.8.3 of JoularJX with a fix for RAPL counter wrapping up, better support for application servers and Java frameworks, and a PowerShell installation script. Check it out at our GitHub repo.
- 01/2024: We've released version 2.8.2 of JoularJX with support for RPi 5, better support for Intel macs, better handling of negative values, and few other tweaks. Check it out at our GitHub repo.
- 01/2024: I've added support for Raspberry Pi 5 B to PowerJoular and JoularJX, and the power model is available now in our Power Models Database.
- 11/2023: version 2.8.0 of JoularJX is released with many news features, including support for macOS, support for all revisions of Raspberry Pi and SBC models, option to change sampling rate, and many more fixes and features. Get it now from our GitHub repository. The GUI is also extracted to its own repository and renamed to JoularJX Reader.
- 08/2023: we release version 2.5 of JoularJX, with a new graphical interface (GUI) to view and analyze power and energy consumption of Java applications. Check our article describing the new features, and get the code from our GitHub repository.
- 04/2023: our new detailed documentation pages for Joular's software and tools is now available, with dedicated pages for PowerJoular and JoularJX. Check them now!
- 02/2023: we release version 2.0 of JoularJX, with many new features including analyzing energy of methods' call trees and branches, power evolution of methods, and many more. Check our article describing the new features, and get the code from our GitHub repository.
- 11/2022: version 1.5 of JoularJX is released with many improvements and new features to my source-code power monitoring software. Check the new release out!
- 08/2022: JoularJX has been updated to support monitoring power on Raspberry Pi devices, based on our research regression models.
- 06/2022: my demonstration and video for my power tools (related paper here) won the Best Demos and Video award at IEEE IE 2022 conference.
- 04/2022: the first stable 1.0 release of JoularJX is out with support for monitoring software energy on Windows and GNU/Linux, filtering multiple methods, and many code improvements and enhancements! Check it out at our JoularJX GitHub repository.
- 04/2022: we released a new variation of JoularJX that uses Intel RAPL interface (through powercap). Check it out and download the source code and binaries from the JoularJX (RAPL version) GitHub.
- 03/2022: our paper on PowerJoular and JoularJX is accepted at IE 2022 conference.
- 10/2021: check our blog article on JoularJX.
- 09/2021: first public beta release.
Installation
Follow the instruction in our JoularJX GitHub repository, and use the installation scripts. You can also just use the compiled jar package for JoularJX.
JoularJX depend on the following software or packages in order to get get power reading:
- On Windows, JoularJX uses a custom power monitor program that uses Intel Power Gadget API on Windows, and therefore require installing the Intel Power Gadget tool and using a supported Intel CPU.
- On GNU/Linux, JoularJX uses Intel RAPL interface through powercap, and therefore requires running on an Intel CPU or an AMD Ryzen CPU.
- On macOS, JoularJX uses Powermetrics on Intel and Apple ARM chips.
- On Raspberry Pi devices and Asus Tinker Board on GNU/Linux, JoularJX uses our own research-based regression models to estimate CPU power consumption with support for the following device models:
Supported platforms
- PC/Servers using a RAPL supported Intel processor (since Sandy Bridge) or a RAPL supported AMD processor (since Ryzen), on GNU/Linux and on Windows.
- macOS computers on Intel mac or Apple ARM chip.
- Virtual machines (any supported guest on any guest).
- Raspberry Pi devices (multiple models) on GNU/Linux (all revision for each model are supported with the one used to generate the model in brackets):
- Model Zero W (rev 1.1), for 32 bits OS
- Model 1 B (rev 2), for 32 bits OS
- Model 1 B+ (rev 1.2), for 32 bits OS
- Model 2 B (rev 1.1), for 32 bits OS
- Model 3 B (rev 1.2), for 32 bits OS
- Model 3 B+ (rev 1.3), for 32 bits OS
- Model 4 B (rev 1.1, and rev 1.2), for both 32 bits and 64 bits OS
- Model 400 (rev 1.0), for 64 bits OS
- Model 5 B (rev 1.0), for 64 bits OS
- Asus Tinkber Board (S)
| Platform | Supported OS | Based on | Supported Architecture |
|---|---|---|---|
| Linux PC/Server | GNU/Linux | RAPL (using powercap) | x86, x86_64 |
| Windows PC/Server | Windows | Hubblo's Windows RAPL driver | x86, x86_64 |
| macOS PC/Server | macOS | Powermetrics | x86, x86_64, ARM |
| Raspberry Pi | GNU/Linux | Our regression models | ARM |
| Asus Tinker Board | GNU/Linux | Our regression models | ARM |
| Virtual Machine | Supported guests (Windows, Linux, macOS), any host | Host's architecture (RAPL, regression models, others) | x86, x86_64, ARM |
Citation
To cite JoularJX, please cite our paper in the 18th International Conference on Intelligent Environments (IE2022).
- PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools. Adel Noureddine. In the 18th International Conference on Intelligent Environments (IE2022). Biarritz, France, 2022.
@inproceedings{noureddine-ie-2022,
title = {PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools},
author = {Noureddine, Adel},
booktitle = {18th International Conference on Intelligent Environments (IE2022)},
address = {Biarritz, France},
year = {2022},
month = {Jun},
keywords = {Power Monitoring; Measurement; Power Consumption; Energy Analysis}
}
Recent Publications
- PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools. Adel Noureddine. In the 18th International Conference on Intelligent Environments (IE2022). Biarritz, France, June 2022.
