Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf: only write state when data changes (#954) #978

Merged
merged 1 commit into from
May 29, 2024
Merged

perf: only write state when data changes (#954) #978

merged 1 commit into from
May 29, 2024

Conversation

alandtse
Copy link
Owner

  • perf: avoid writing state when the controller did not actually update

#948 made me realize that the car data was being polled far less frequently than I thought as the underlying library was caching, but every time the coordinator fired, it would still callback all the listeners and write the state of all the entities which meant we ended up writing state every 10 seconds even if nothing has changed.

Keep track of when the controller was last updated in each entity and if it has not changed, we skip the state write.

This reduced the number of calls to async_write_ha_state by 62% on my production HA instance!

  • fix async_added_to_hass was being overridden and forgot to remove in pr

* perf: avoid writing state when the controller did not actually update

#948 made me realize that the car data was being polled far less frequently than I thought as the underlying library was caching, but every time the coordinator fired, it would still callback all the listeners and write the state of all the entities which meant we ended up writing state every 10 seconds even if nothing has changed.

Keep track of when the controller was last updated in each entity and if it has not changed, we skip
the state write.

This reduced the number of calls to `async_write_ha_state` by 62% on my production HA instance!

* fix async_added_to_hass was being overridden and forgot to remove in pr
@alandtse alandtse merged commit a92a4e5 into main May 29, 2024
48 of 50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants