mirror of
https://github.com/esphome/esphome.git
synced 2025-07-29 06:36:45 +00:00
Pre-reserve looping components vector to reduce memory allocations (#9177)
This commit is contained in:
parent
7fc5bfd787
commit
2a45467bf6
@ -257,6 +257,17 @@ void Application::teardown_components(uint32_t timeout_ms) {
|
||||
}
|
||||
|
||||
void Application::calculate_looping_components_() {
|
||||
// Count total components that need looping
|
||||
size_t total_looping = 0;
|
||||
for (auto *obj : this->components_) {
|
||||
if (obj->has_overridden_loop()) {
|
||||
total_looping++;
|
||||
}
|
||||
}
|
||||
|
||||
// Pre-reserve vector to avoid reallocations
|
||||
this->looping_components_.reserve(total_looping);
|
||||
|
||||
// First add all active components
|
||||
for (auto *obj : this->components_) {
|
||||
if (obj->has_overridden_loop() &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user