Hi all
I want to make a little app that logs system info like temps, system load, and which processes uses the most CPU time to a DB.
I want to add an option to show these stats live in a graph much like the Performance Tab in Task manager.
I want to be able to see which processes use the most CPU time and also be able to see which processes caused usage spikes. Thus the need for a DB.
I know this may end up using quite a bit of CPU cycles by it self, but the idea is not really to have it running all the time like you would with something like HWInfo64. This is for convenience and some light diagnostics use more than anything else and is something I’ve wanted for quite some time. I especially want the ability to see what caused a usage spike on a graph which Task manager does not have.
I’ve been using things like Hardware Monitor and HWInfo for years, but I’ve always been annoyed with the lack of dark mode and the lack of live graphs. It means that I have to use multiple apps to try and gauge what is going on while still not being able to see which processes caused a spike in usage on the graphs.
Again, the idea here is not to have this running all the time… although it will probably depend on how efficient I can make it. For the most part things like HWInfo64 is what you want to monitor temps, but quite often I want to log some more info regarding CPU usage.
Example: I recently tried Star Citizen during the free fly event and the Task manager graphs were actually very useful to see the effect on CPU and GPU usage when changing settings and modifying config files which resulted in quite the FPS boost in the end. Being able to see what is going on at a glance is what the live graphs are useful for.
I work mostly on back end systems which means my GUI-fu isn’t great. I did some quick experimentation with Photino, but quickly ran into performance issues.
I’m going to use C#, WPF, and SQLite since that is what I’m familiar with. Not much of a challenge there, I know, but I think getting this to chew as little CPU cycles as possible is where the challenge is going to be. I know from past experience that getting process info can eat quite a bit of CPU time. So this will probably be the main challenge.
EDIT 2021-12-24:
V1 is Done… although limited and is mostly written for my own use
Git Link to V1: https://github.com/Nicks182/StatsTick
I ended up not logging to the SQLite DB. I felt that it didn’t really add much value and it would grow and take a huge amount of space if left unchecked. Figured it’s better to not have it at this time.
So far I’ve only had one bug related to the theme which I fixed.