We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi All,
I am running some code in the performance analyser and I am getting some odd results. I have 3 identical routines which are called via a background processing loop. When I monitor the execution times of the routines they have averages which look good (the right duration and pretty much identical) but two of the routines are reported with min time and max times of 0.00000 yet the average is 0.154000 - what's going on there?
Is this 'typical behaviour' of the Performance Analyser or should I be a little more concerned?
Cheers
Andy
Hi All
Some more dubious stats.
I have stripped back my code such that timer0 ISR will now process the alarm list, but not actually call the callback and main does nothing but sit in an empty while loop (idle loop). So the only system acitivity is the timer0 ISR running with a 10mS period processing the alarm list.
In this configuration, PA (Performance Analyser) tells me that the WCET (Worst-Case Execution Time) of timer0 ISR is 90uS. I now setup the timer0 ISR to call the following callback when the alarm is triggered:
void callback (void) {
}
With this confiuration, PA tells me that the WCET of the timer0 ISR is now 86uS. So, with the function call, the WCET of the ISR is smaller! How can this be?
PA also reports that the WCET of the above handler is 62uS. Where is this time spent?
I hope I am missing something here regarding the setup/use/interpretation of PA stats, because I am losing faith.
Can someone please put me on the path to enlightenment?