Module

utils.performance_collector

Performance metrics collection for Bengal SSG.

Collects and persists build performance metrics including timing and memory usage. This is Phase 1 of the continuous performance tracking system.

Example:

from bengal.utils.performance_collector import PerformanceCollector

collector = PerformanceCollector()
collector.start_build()

# ... run build ...

stats = collector.end_build(build_stats)
collector.save(stats)

Classes

PerformanceCollector
Collects and persists build performance metrics. Phase 1 implementation: Basic timing and memory c…
5

Collects and persists build performance metrics.

Phase 1 implementation: Basic timing and memory collection. Future phases will add per-phase tracking, git info, and top allocators.

Usage:

collector = PerformanceCollector()
collector.start_build()

# ... execute build ...

stats = collector.end_build(build_stats)
collector.save(stats)

Methods 4

start_build
Start collecting metrics for a build.
0 None
def start_build(self) -> None

Start collecting metrics for a build.

end_build
End collection and update stats with memory metrics.
1 BuildStats
def end_build(self, stats: BuildStats) -> BuildStats

End collection and update stats with memory metrics.

Parameters 1
stats BuildStats

BuildStats object to update with memory information

Returns

BuildStats

Updated BuildStats object

save
Save metrics to disk for historical tracking.
1 None
def save(self, stats: BuildStats) -> None

Save metrics to disk for historical tracking.

Parameters 1
stats BuildStats

BuildStats object to persist

get_summary
Generate a one-line summary of build metrics.
1 str
def get_summary(self, stats: BuildStats) -> str

Generate a one-line summary of build metrics.

Parameters 1
stats BuildStats

BuildStats object

Returns

str

Formatted summary string

Internal Methods 1
__init__
Initialize performance collector.
1 None
def __init__(self, metrics_dir: Path | None = None)

Initialize performance collector.

Parameters 1
metrics_dir Path | None

Directory to store metrics (default: .bengal/metrics)

Functions

format_memory
Format memory size for display.
1 str
def format_memory(mb: float) -> str

Format memory size for display.

Parameters 1

Name Type Default Description
mb float

Memory in megabytes

Returns

str

Formatted string (e.g., "125.3 MB" or "1.2 GB")