Profiling

Use profiling only after you trust the decomposition output itself. The profile command is for runtime characterization of a workflow you already understand, not for selecting methods by scoreboard.

Basic usage

python -m detime profile \
  --method SSA \
  --series examples/data/example_series.csv \
  --col value \
  --param window=24 \
  --param rank=6 \
  --param primary_period=12 \
  --repeat 5 \
  --warmup 1 \
  --format text

Published stdout from the current docs build:

method=SSA
backend_requested=auto
backend_used=native
speed_mode=exact
repeat=5
warmup=1
...

Published raw text report:

Save a report

python -m detime profile \
  --method STD \
  --series examples/data/example_series.csv \
  --col value \
  --param period=12 \
  --backend native \
  --repeat 10 \
  --warmup 2 \
  --format text \
  --output out/profile/std_native.txt

Published command stdout:

Profile report written to out/profile/std_native.txt

Published saved report:

Representative saved report excerpt:

method=STD
backend_requested=native
backend_used=native
speed_mode=exact
repeat=10
warmup=2
...

Multivariate JSON profile

python -m detime profile \
  --method MSSA \
  --series examples/data/example_multivariate.csv \
  --cols x0,x1 \
  --param window=24 \
  --param primary_period=12 \
  --repeat 3 \
  --format json

Published JSON output:

Representative excerpt:

{
  "method": "MSSA",
  "backend_used": "python",
  "columns": ["x0", "x1"],
  "summary": {
    "mean_ms": 11.9110,
    "min_ms": 11.6017,
    "p95_ms": 12.0886
  }
}

Compatibility

The legacy aliases still work for one deprecation cycle:

  • tsdecomp profile
  • python -m tsdecomp profile