Classes
PerformanceCollector
Collects and persists build performance metrics.
Phase 1 implementation: Basic timing and memory c…
PerformanceCollector
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.
start_build
def start_build(self) -> None
Start collecting metrics for a build.
end_build
End collection and update stats with memory metrics.
end_build
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
Updated BuildStats objectBuildStats
—
save
Save metrics to disk for historical tracking.
save
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.
get_summary
def get_summary(self, stats: BuildStats) -> str
Generate a one-line summary of build metrics.
Parameters 1
stats |
BuildStats |
BuildStats object |
Returns
Formatted summary stringstr
—
Internal Methods 1
__init__
Initialize performance collector.
__init__
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.
format_memory
def format_memory(mb: float) -> str
Format memory size for display.
Parameters 1
| Name | Type | Default | Description |
|---|---|---|---|
mb |
float |
— | Memory in megabytes |
Returns
Formatted string (e.g., "125.3 MB" or "1.2 GB")str
—