scope_profiler.plotting_scripts.durations
Duration bar charts: per-region totals/averages, optionally stacked by caller.
Functions
| Name | Description |
|---|---|
plot_durations | Plot duration bar charts for one or more profiling files using maxplotlib. |
plot_durationsfunction#
def plot_durations(profiling_data: ProfilingResults | Sequence[ProfilingResults], ranks: list[int] | int | None = None, include: list[str] | str | None = None, exclude: list[str] | str | None = None, labels: Sequence[str] | None = None, metric: str = 'total', metrics: Sequence[str] | None = None, sort_by: str | None = None, top_n: int | None = None, combine_regions: dict[str, list[str] | str] | None = None, stack_children: bool = False, filepath: str | None = None, show: bool = False, verbose: bool = True, cmap: str = DEFAULT_CMAP, log_scale: bool = False, data_filepath: str | Path | None = None, data_format: str = 'csv', backend: str = 'matplotlib', return_fig: bool = False) -> list[str] | list[object] | objectPlot duration bar charts for one or more profiling files using maxplotlib.
Parameters
combine_regions : dict[str, list[str] | str], optional
Merge several regions into a single bar, e.g. {"setup": ["setup: .*"]} combines every setup: ... region into one bar named
“setup”, pooling their calls the same way sort_by and the other
duration statistics pool a single region’s calls. Each value is one
or more regex patterns (matched like include); a region matching
several groups is claimed by whichever group is listed first.
metric : str
Duration metric to render (avg, min, max, total,
first or last). first/last are the durations of the
chronologically first and last call, which show how much of a
region’s cost is one-off warmup rather than steady state.
metrics : Sequence[str], optional
Render several metrics instead of one. Each gets its own figure —
filepath is suffixed with the metric name, as it always was for
multiple metrics - but a single data_filepath holds them all,
with the metric named per row, so one export can back a chart whose
metric the viewer switches. Overrides metric when given.
stack_children : bool
Split each bar into the region’s own (exclusive) time plus one
segment per region called directly from it, stacked on top of each
other, so a bar shows where its time went instead of only how much
there was. The nesting comes from timestamp containment, the same
reconstruction the flame chart uses, over every region in the run —
a child that is filtered out of the bars still gets its own segment.
Only total and avg decompose this way; min/max are
rejected. Colors then identify segments rather than runs, so with
several runs the bars are still grouped per region in run order but
the legend names the segments.
backend : str
Backend to use for rendering: “matplotlib” (default) or “plotly”.
return_fig : bool
Return the rendered figure instead of the saved filepath list.
Returns
list[str]
List of filepaths that were written (empty if filepath is None).
With return_fig, the rendered figure, or the list of figures
when several metrics were requested.