diff --git a/esphome/core/scheduler.cpp b/esphome/core/scheduler.cpp index 7e2a805793..a8cebf3e9e 100644 --- a/esphome/core/scheduler.cpp +++ b/esphome/core/scheduler.cpp @@ -91,9 +91,15 @@ void HOT Scheduler::set_timer_common_(Component *component, SchedulerItem::Type // Reuse from pool item = std::move(this->scheduler_item_pool_.back()); this->scheduler_item_pool_.pop_back(); +#ifdef ESPHOME_DEBUG_SCHEDULER + ESP_LOGVV(TAG, "Reused item from pool (pool size now: %zu)", this->scheduler_item_pool_.size()); +#endif } else { // Allocate new if pool is empty item = make_unique(); +#ifdef ESPHOME_DEBUG_SCHEDULER + ESP_LOGVV(TAG, "Allocated new item (pool empty)"); +#endif } item->component = component; item->set_name(name_cstr, !is_static_string); @@ -771,6 +777,13 @@ void Scheduler::recycle_item_(std::unique_ptr item) { // Clear dynamic name if any item->clear_dynamic_name(); this->scheduler_item_pool_.push_back(std::move(item)); +#ifdef ESPHOME_DEBUG_SCHEDULER + ESP_LOGVV(TAG, "Recycled item to pool (pool size now: %zu)", this->scheduler_item_pool_.size()); +#endif + } else { +#ifdef ESPHOME_DEBUG_SCHEDULER + ESP_LOGVV(TAG, "Pool full (size: %zu), deleting item", this->scheduler_item_pool_.size()); +#endif } // else: unique_ptr will delete the item when it goes out of scope }