Main Site Documentation

Profiling the Fez boards?


Hello there,

Is there a way to tell how many resources and CPU, the Fez boards are currently using?

I’ve just created a small projekt on a Panda, that involves an RS232 Modbus server and some separate calculation logic. Multiple threads, C# implemented CRC16, heavy usage of Sin/Cos, lots of allocations, huge blob processing… You know, all the usual stuff.

And it seems to work just fine. But I would like to know if there’s room for more and which rutines I should consider optimizing. Ergo I would like to profile my project.

(By “room” I mostly refere to “calculation time”)

Is there a way to tap the “idle” thread or do profile analyzing or something?


This was requested before and we see the benefit from providing such option…maybe in near future.

Let me talk to the experts here to see what they can tell us.


Update: When you run a “Device Capabilities” with the MFDeploy (for the Panda) it will give you the following tidbit:

Profiling: False
ProfilingAllocations: False
ProfilingCalls: False

So Microsoft has already thought of profiling. It’s just not supported on the Panda. I will investigate this a bit more.


Asking the little panda to do full profiling maybe too much to ask. You do not to lose precious resources


I posted a Test/Profile class on Fezzer that may help.
For profiling, you do need to call Start/Stop methods at points in your methods, but it does keep running totals going for you to report on later in your program. hth




I think the profiling part will not work very accurate since you don’t know how long the current thread was interrupted by other threads.


@ wouter. Thanks. It is true this is clock-on-the-wall time. However, without more built-in support, I did not find a better way (unless there is some support I have missed which is likely). Even so, it can still provide some value for common senarios. Milage may vary.