Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CSV Output Format

Joule Profiler can also export results as CSV using the --csv CLI flag.
This format is suitable for spreadsheets, scripting, or import into analysis tools.

CSV Header

The CSV file contains the following columns:

ColumnDescription
phase_idPhase index
phase_namePhase name, e.g., "START -> END"
phase_duration_msDuration of the phase in milliseconds
metric_nameName of the metric (sensor)
metric_valueMeasured value
metric_unitUnit of the measurement (e.g., µJ)
metric_sourceSource of the metric (e.g., powercap)
start_tokenPhase start token
end_tokenPhase end token
start_lineLine number in program output where phase started (optional)
end_lineLine number in program output where phase ended (optional)
timestampStart timestamp of the phase (ms since epoch)
commandCommand executed
exit_codeProgram exit code
token_patternRegex used to detect phase tokens

Profile Example

phase_id;phase_name;phase_duration_ms;metric_name;metric_value;metric_unit;metric_source;start_token;end_token;start_line;end_line;timestamp;command;exit_code;token_pattern
0;"START -> END";1859;CORE-0;45935552;µJ;powercap;START;END;;;1769987854341;"python3 nbody.py 500000";0;"__[A-Z0-9_]+__"
0;"START -> END";1859;DRAM-0;1283811;µJ;powercap;START;END;;;1769987854341;"python3 nbody.py 500000";0;"__[A-Z0-9_]+__"
0;"START -> END";1859;PACKAGE-0;66560987;µJ;powercap;START;END;;;1769987854341;"python3 nbody.py 500000";0;"__[A-Z0-9_]+__"

Which gives:

phase_idphase_namephase_duration_msmetric_namemetric_valuemetric_unitmetric_sourcestart_tokenend_tokenstart_lineend_linetimestampcommandexit_codetoken_pattern
0START -> END1859CORE-045935552µJpowercapSTARTEND1769987854341python3 nbody.py 5000000[A-Z0-9]+_
0START -> END1859DRAM-01283811µJpowercapSTARTEND1769987854341python3 nbody.py 5000000[A-Z0-9]+_
0START -> END1859PACKAGE-066560987µJpowercapSTARTEND1769987854341python3 nbody.py 5000000[A-Z0-9]+_

Listing Sensors

Here is an example of sensors listing in CSV format:

sensor;unit;source
PSYS-1;µJ;powercap
PACKAGE-0;µJ;powercap
CORE-0;µJ;powercap
UNCORE-0;µJ;powercap

which gives the following table:

sensorunitsource
PSYS-1µJpowercap
PACKAGE-0µJpowercap
CORE-0µJpowercap
UNCORE-0µJpowercap

Note

  • CSV is semicolon-separated for compatibility with most spreadsheet software.
  • Each row represents one metric for a single phase.
  • Multiple iterations are flattened in sequence, making it easy to filter by iteration_id.
  • Programmatic tools can aggregate phases, iterations, and sources easily using the CSV columns.