Joular Code - Java is a lightweight and efficient Java agent for monitoring the energy consumption of methods and execution branches at the source code level.
This project is part of Joular Code, and is the successor of JoularJX.
🚀 Features
Monitor power consumption and energy of each method and execution branch at runtime
Works as a Java agent — no source code instrumentation or modification needed
Samples the JVM stack at high frequency (default: every 10 ms) and attributes energy every second
Supports three power data source backends from Joular Core:
Shared memory ring buffer (IPC) — lowest latency, recommended
CSV file — file-based polling
HTTP endpoint — remote or containerized setups
Generates CSV files with per-method and per-branch power (Watts) and energy (Joules)
Produces two output sets: one for all methods (including JDK internals), one filtered to your application packages
Configurable method filtering by package/class prefix to focus energy data on your code
Cross-platform: Windows, macOS, Linux, and Raspberry Pi