Profiling#
When profiling=True, SMonitor records durations per decorated frame and aggregates timing stats in report().
Decorator-based timing#
import smonitor
smonitor.configure(profiling=True)
@smonitor.signal
def work():
return 1
Manual spans#
from smonitor.profiling import span
with span("data_loading", source="database"):
pass
Sampling and buffer#
smonitor.configure(
profiling=True,
profiling_sample_rate=0.1,
profiling_buffer_size=200,
)
Export timeline#
from smonitor.profiling import export_timeline
export_timeline("timeline.json", format="json")