-
Notifications
You must be signed in to change notification settings - Fork 770
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
FR: Method for measuring CPU load #3465
Comments
I have a similar issue: I'm uncertain if my current performance bottlenecks are in IO or in in the microcontroller core itself. Also using the executor itself would be a good bet since the information would be most available there. Maybe tracking some form of Id for each async task could be a start? |
It would be good to have a profiling tool. I have a basic one I've written for using to time how long code takes to execute. |
I wrote the FR 2 weeks ago. In the mean time, I have realized the feature (as a centralized monitoring feature) may not be as necessary as I originally imagined. My thinking was desktop based, I presume. The code I work on (as many embedded code, I imagine) works as repeated "frames", or as a state machine. By timing how much time each operation within a "frame" takes, I have gotten a good understanding of where the time is spent - and as a side benefit how much CPU budget remains, until the core wouldn't be able to carry everything out each "frame". I will keep the FR open, as it was intended to catch discussion on this issue. |
I'm starting to use Embassy and one curiousity is about how much CPU headroom there is, when I'm running a certain application. In other words, how long does the Executor sleep?
This issue is intended as a place for discussion / collection of knowledge. I start by listing the few resources I've found.
Since I am new to Rust and Embassy, I am not yet prepared for providing a PR. However, I will be experimenting with this need.
Links:
[2]
Opinions:
[2]
uses the feature namemeasure-cpu-load
.The text was updated successfully, but these errors were encountered: