core/homeassistant/util
J. Nick Koston 69307374f4
Signficantly reduce executor contention during bootstrap (#107312)
* Signficantly reduce executor contention during bootstrap

At startup we have a thundering herd wanting to use the executor
to load manifiest.json. Since we know which integrations we are
about to load in each resolver step, group the manifest loads
into single executor jobs by calling async_get_integrations on
the deps of the integrations after they are resolved.

In practice this reduced the number of executor jobs
by 80% during bootstrap

* merge

* naming

* tweak

* tweak

* not enough contention to be worth it there

* refactor to avoid waiting

* refactor to avoid waiting

* tweaks

* tweaks

* tweak

* background is fine

* comment
2024-01-07 22:55:40 -05:00
..
yaml Enable strict typing for blueprint (#106887) 2024-01-02 20:48:51 +01:00
__init__.py Stricter pylint message control (#86154) 2023-01-20 13:47:55 +01:00
aiohttp.py Add body_exists to MockRequest in aiohttp util (#100932) 2023-09-26 17:52:29 +02:00
async_.py Add first TypeVarTuple annotations (#105379) 2023-12-18 00:38:07 +01:00
color.py Add scaling utils for brightness and fanspeed (#104753) 2023-12-04 12:10:58 +01:00
decorator.py
dt.py Enable strict typing of date_time (#106868) 2024-01-02 13:57:25 +01:00
enum.py Cache try_parse_enum (#87911) 2023-02-12 03:57:36 -06:00
executor.py
file.py Use os.path.dirname() for getting the directory name of a path (#81504) 2022-11-14 15:21:35 +01:00
frozen_dataclass_compat.py Freeze integration entity descriptions (#105984) 2023-12-18 16:28:13 -10:00
json.py Reduce duplicate code in json_loads (#106859) 2024-01-01 20:25:23 -10:00
language.py Use aliases when listing pipeline languages (#99672) 2023-09-08 08:22:08 -04:00
limited_size_dict.py Add WS API for debugging previous assist_pipeline runs (#91541) 2023-04-17 11:48:02 -04:00
location.py Switch formatting from black to ruff-format (#102893) 2023-11-27 14:38:59 +01:00
logging.py Update Ruff to 0.1.8, avoid linter/formatter conflicts (#106080) 2023-12-20 23:55:09 +01:00
network.py Use stdlib ip_address method in the network helper when compatible (#102019) 2023-10-15 21:24:49 -04:00
package.py Signficantly reduce executor contention during bootstrap (#107312) 2024-01-07 22:55:40 -05:00
percentage.py Add scaling utils for brightness and fanspeed (#104753) 2023-12-04 12:10:58 +01:00
pil.py Add types-Pillow dependency (#98266) 2023-08-13 11:57:46 -05:00
process.py
read_only_dict.py
scaling.py Add scaling utils for brightness and fanspeed (#104753) 2023-12-04 12:10:58 +01:00
ssl.py Prevent duplicate default SSLContext instances (#105348) 2023-12-09 11:30:12 -10:00
thread.py
timeout.py Remove unnnecessary pylint configs from core (#98704) 2023-08-22 23:12:12 +02:00
ulid.py Use ulid_now instead of ulid_at_timestamp if no timestamp is passed (#104226) 2023-11-19 22:27:24 -05:00
unit_conversion.py Make unit converter use a factory to avoid looking up the ratios each conversion (#93706) 2023-05-29 20:50:40 +02:00
unit_system.py Add preferred wind speed unit to unit systems (#90504) 2023-03-30 12:54:12 +02:00
uuid.py
variance.py Import `ParamSpec` from typing [Py310] (#86413) 2023-01-23 07:28:43 +01:00