Measure the work, not just the runtime

Every program leaves a delta. Measure it.

Get DoL8 running

git clone https://github.com/uyg7x/DoL8.git && cd DoL8
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
python -m dol8.cli doctor
Linux bare metalIntel & AMDPython 3.9+MIT Licensev0.9.0

DoL8 reads Linux CPU energy counters before and after a workload, then reports a high-resolution estimate of energy, power, and thermal context.

Think of RAPL as an electricity meter inside the processor. DoL8 takes a starting reading, runs one target at a time, takes another reading, and calculates the counter delta in joules. Temperature and statistical variation add context to that number.

Watch / walkthrough

How to use DoL8

Watch the walkthrough for a guide to using DoL8 and understanding how its measurements work.

Open in YouTube Tap above if your mobile browser blocks embedded player playback.

Features / Capabilities

Core capabilities

Explore the 6 core components and measurement features that power DoL8.

Why it matters

Energy should be visible during development.

Runtime is only one dimension of software cost. Energy use affects heat, battery life, cloud spend, and the efficiency of systems under sustained load.

DoL8 gives developers a repeatable starting point for comparing workloads. Its output is an estimate with explicit limits, not a substitute for calibrated lab equipment or a whole-system power meter.

  • Speed is not energy. Two programs with identical runtime can differ up to 30x in energy consumed. Time was always visible; energy never was.
  • Silent throttling. An overheated CPU slows itself down with no error and no log, hiding a cause of mysterious performance loss.
  • Heat shortens hardware life. Roughly every sustained +10 C can halve component lifetime. Software slowly consumes the machine it runs on.
  • Waste is money. Cloud billing converts directly to compute time. Measured energy shows which workloads to optimize first.

Start on supported hardware

Linux first. One command next.

Install on bare-metal Linux with readable RAPL powercap counters. Check readiness before profiling.

  • python -m dol8.cli doctor
  • dol8 run workload.py --runs 5
  • dol8 compare before.py after.py
  • dol8 boot-energy
54 automated tests passedBare-metal Linux validation pending

FAQ

Questions, answered

Does it work on Windows or macOS?

No. RAPL is exposed by the Linux kernel only. v1.0 targets Linux bare metal; other platforms are on the roadmap.

Does it work in a VM or WSL2?

No. Virtualized hardware hides RAPL. That is a physical limitation, not a bug.

Is the measurement exact?

No honest tool can claim that. RAPL counters are quantized. DoL8 reports high-resolution estimates with explicit margins.

Can it isolate one process from everything else running?

RAPL meters the whole CPU socket. DoL8 runs targets sequentially for clean attribution; watch mode reports an app share clearly labeled ESTIMATED.

Does the tool itself distort measurements?

DoL8 spends much of each run waiting on measurements, but overhead still exists. Measure it with a no-op workload; no bare-metal overhead number is published yet.

Can it measure GPU energy?

This build can sample NVIDIA GPUs when optional pynvml support is available. Other GPU vendors are not supported; broader GPU support matters most for gaming and ML workloads.