Excessibility.TelemetryCapture.Analyzers.Memory (Excessibility v0.14.0)

View Source

Analyzes memory usage patterns across timeline events.

Detects:

  • Memory bloat (large growth between events)
  • Memory leaks (3+ consecutive increases)

Uses adaptive thresholds based on timeline statistics to avoid false positives and work across different test sizes.

Algorithm

  1. Calculate baseline stats (mean, median, std deviation)
  2. Calculate median delta between events
  3. Detect outliers:
    • Warning: Growth > 3x median delta
    • Critical: Growth > 10x median delta OR size > mean + 2std_dev
  4. Detect leaks: 3+ consecutive increases

Output

Returns findings and statistics:

%{
  findings: [
    %{
      severity: :warning,
      message: "Memory grew 5.2x between events (45 KB → 234 KB)",
      events: [3, 4],
      metadata: %{growth_multiplier: 5.2, delta_bytes: 189000}
    }
  ],
  stats: %{min: 2300, max: 890000, avg: 145000, median_delta: 12000}
}

Summary

Functions

analyze(map, opts)

Callback implementation for Excessibility.TelemetryCapture.Analyzer.analyze/2.

default_enabled?()

Callback implementation for Excessibility.TelemetryCapture.Analyzer.default_enabled?/0.

name()

Callback implementation for Excessibility.TelemetryCapture.Analyzer.name/0.

requires_enrichers()

Callback implementation for Excessibility.TelemetryCapture.Analyzer.requires_enrichers/0.