We have an existing application running with a Colibri T20 under Windows CE 6 and developed in C #.
This application sometimes encounters 100% CPU load issues remaining indefinitely (until you close the application or shutdow the board).
This issue is not reproducible on demand.
We suspect a task with blocking loop problem consuming the entire processor time.
Do you have tools or other tips allowing us to more easily identify the cause of this CPU load?
For example libraries able to return the processor time used per thread (with name) that we can write in the periodic logs, …
Other tips to solve my problem are welcome.
You can download and run the Toradex Task Manager in order to measure the CPU load of individual processes and threads.
However, the tool operates on native elements. I actually never analyzed whether there is a direct relation between managed and native processes and threads.
Thanks for those quick answers.
Yes, I already use Toradex Task Manager 2.0. This utility is very useful but I only use it during debug mode.
Can we use Toradex Task Manager as from an API (dll or other) to use it and log the same information in our application in a test environment?
Currently, we use the native functions (NvRmDfsGetClockUtilization) encapsulated in a dll to monitor the overall CPU load. It’s work fine.
Now, we would also like to monitor the load of certain processes / threads.
The thread informations of the process will be averaged over a time range to avoid too large logs.