diff --git a/src/esp_cpu_monitor/cpu_monitor.cpp b/src/esp_cpu_monitor/cpu_monitor.cpp index fa712fd..4ac6bf5 100644 --- a/src/esp_cpu_monitor/cpu_monitor.cpp +++ b/src/esp_cpu_monitor/cpu_monitor.cpp @@ -208,8 +208,9 @@ void ESPCpuMonitor::deinit() { s_instance = nullptr; calibrated_ = false; hasSample_ = false; - history_.clear(); - callbacks_.clear(); + // Swap with fresh empty containers so capacity is released during teardown. + CpuMonitorDeque(CpuMonitorAllocator(config_.usePSRAMBuffers)).swap(history_); + CpuMonitorVector(CpuMonitorAllocator(config_.usePSRAMBuffers)).swap(callbacks_); resetSmoothingState(); resetTemperatureState(); }