J. Nick Koston
f9b87d0ede
[core] Replace scheduler pool vector with unbounded intrusive freelist
...
The fixed MAX_POOL_SIZE=5 cap was the source of the heap churn the pool was
meant to prevent: any device with more than 5 concurrent timers (e.g. a board
with 30+ LD2450 sensors) hit a steady-state oscillation of recycle->delete and
acquire->new on every loop iteration.
Replace std::vector<SchedulerItem*> with a singly-linked freelist threaded
through SchedulerItem::next_free, which shares storage with `component` via an
anonymous union (zero per-item overhead -- the component pointer is dead while
pooled). Drop the cap entirely: the freelist quiesces at the application's
natural concurrent-timer high-water mark, which is the working set the device
already needs while those timers are active.
No std::vector means no growth-doubling slack and no realloc copies during
warm-up. Caller of get_item_from_pool_locked_() must overwrite item->component
before unlocking (already true at the sole call site); nullptr remains a valid
live `component` value for SELF_POINTER items, so we cannot pre-clear it.
2026-04-30 10:42:46 -05:00
J. Nick Koston
cf01163c8c
[core] Add uint32_to_str helper and use in preferences ( #15597 )
2026-04-14 07:49:44 -10:00
J. Nick Koston
4f69c3b850
[benchmark] Add SubscribeLogsResponse encode benchmarks ( #15696 )
2026-04-13 02:03:53 -05:00
J. Nick Koston
03db32d045
[core] Add CodSpeed benchmarks for hot helper functions ( #15593 )
2026-04-09 07:48:32 -10:00
J. Nick Koston
576d89a82a
[api] Peel first write iteration, inline socket writes, zero-gap batch encoding ( #15063 )
2026-04-08 11:05:53 -10:00
J. Nick Koston and Copilot
a8b7c7a4ac
[core] Add TemplatableFn for 4-byte function-pointer templatable storage ( #15545 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-08 08:38:00 -04:00
J. Nick Koston
f193bab60b
[api] Add ListEntities benchmarks for sensor, binary_sensor, and light ( #15427 )
2026-04-05 13:25:50 -10:00
J. Nick Koston
f2a0d9943d
[benchmarks] Add host platform benchmarks for text_sensor and button ( #15407 )
2026-04-03 08:27:55 -10:00
J. Nick Koston
ea0227a206
[benchmarks] Add host platform benchmarks for number, select, and switch ( #15405 )
2026-04-03 08:27:44 -10:00
J. Nick Koston
5a23669747
[scheduler] Fix unrealistic scheduler benchmarks missing periodic drain ( #15396 )
2026-04-03 08:27:29 -10:00
J. Nick Koston
bcc7b8f490
[api] Add send_sensor_state benchmarks ( #15352 )
2026-04-01 16:12:02 -10:00
J. Nick Koston
8688ef7125
[benchmark] Fix decode benchmarks being optimized away by compiler ( #15293 )
2026-03-30 08:24:48 -10:00
J. Nick Koston
8a802ca666
[benchmark] Add BLE raw advertisement proto encode benchmarks ( #15289 )
2026-03-29 11:54:07 -10:00
J. Nick Koston
240e53afce
[fan] Add benchmarks for fan component ( #15210 )
2026-03-26 14:35:09 -10:00
J. Nick Koston
02e23eb386
[benchmark] Add light call and publish benchmarks ( #15176 )
2026-03-26 07:33:10 -10:00
J. Nick Koston
6898284361
[benchmark] Add cover publish_state and call benchmarks ( #15179 )
2026-03-26 07:32:54 -10:00
J. Nick Koston
f3a31be6d0
[benchmark] Add climate publish_state and call benchmarks ( #15180 )
2026-03-26 07:32:39 -10:00
J. Nick Koston
010516aef2
[benchmark] Add sensor publish_state benchmarks ( #15034 )
2026-03-25 07:33:17 -10:00
J. Nick Koston
690dc324c9
[logger] Move task log buffer storage to BSS ( #15153 )
2026-03-25 00:52:37 +00:00
J. Nick Koston
a0d0516b22
[benchmark] Add noise handshake benchmark ( #15039 )
2026-03-23 13:40:41 -10:00
J. Nick Koston
597bb18543
[benchmark] Add binary sensor publish and sensor filter benchmarks ( #15035 )
2026-03-23 16:30:57 +13:00
J. Nick Koston
593dbc9e67
[logger] Fix unit test and benchmark Logger constructor calls ( #15085 )
2026-03-23 09:50:58 +13:00
J. Nick Koston
86ec218f75
[benchmark] Add plaintext API frame write benchmarks ( #15036 )
2026-03-21 13:15:35 -10:00
J. Nick Koston
1920d8a887
[benchmark] Add noise encryption benchmarks ( #15037 )
2026-03-20 17:35:17 -10:00
J. Nick Koston
9a80c980cb
[scheduler] Early exit cancel path after first match ( #14902 )
2026-03-18 07:48:26 -10:00
0c5f055d45
[core] cpp tests: Allow customizing code generation during tests ( #14681 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-18 00:16:01 +00:00
J. Nick Koston
1670f04a87
[core] Add CodSpeed C++ benchmarks for protobuf, main loop, and helpers ( #14878 )
2026-03-17 12:29:38 -10:00