-
-
Notifications
You must be signed in to change notification settings - Fork 137
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
Identify and reduce background CPU usage #273
Comments
Maybe, implementing a separate process could solve this? (Windows-Auto-Night-Mode)[https://github.com/AutoDarkMode/Windows-Auto-Night-Mode/tree/master] seems to do it that way. I have no experience with Windows app development, so I am unsure if that really would help (maybe with the ram consumption in #248 ?). Obviously, rewriting the app takes some considerable effort, which might not be worth it. |
It could help, but first need to figure out what's even contributing to the CPU usage in the first place, to understand which areas need optimization. |
From some quick profiling, it looks like the vast majority of the background CPU usage comes from Avalonia's main render loop, with no traceable path to any code LightBulb seems to be calling. LightBulb's internal modules only have 2% of the total CPU usage compared to Avalonia's >80%. In terms of memory usage, I'm seeing about 150-200mb on my machine, the vast majority of which is Avalonia components: I agree with @seapat, I think the solution here is to split off the backend into a separate process and only run the frontend when requested. I think that'll solve 99% of the memory and CPU issues. |
Version
v2.4.7 / v2.5*
Platform
Windows 11
Steps to reproduce
Start LightBulb and hide it to the tray.
Details
Observe passive CPU usage of 0.1-1%, depending on the environment.
Need to identify the largest contributors to CPU usage and come up with a strategy to reduce it. Open for external contributions.
Related to #248, but split out into a separate issue to focus only on the CPU aspect because the relatively high RAM usage (50-70mb) is a byproduct of running on the .NET runtime and can't easily be resolved.
Checklist
The text was updated successfully, but these errors were encountered: