Main Site Documentation

Profiling the Fez boards?


#1

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?


#2

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.


#3

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.


#4

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


#5

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
http://www.fezzer.com/project/205/test-andor-profile/


#6

Interesting


#7

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.


#8

@ 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.