I suggest you call clock_gettime () twice with nothing between these calls.  
printf() is a complicated function that may interact with hardware, for 
example, a serial port or ethernet.  The time required to do input or output 
may depend on the state of the hardware, or on the operation of a queue, or 
maybe even task switching that happens when the system waits for I/O. 

( I don't see the definition of sT and eT.  Are they declred as pointers to 
startTIme and stopTime ?)

Rathin Dholakia <rathindhola...@gmail.com> wrote:

Dear All,


I was experimenting with the timing and timing accuracy on BBB. and I came 
across a very interesting yet strange thing!


Just running  clock_gettime()twice and measuring the time difference, gives you 
horrendous timing. Here is my simple C code:


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>


int main()
{


    struct timeval startTime, stopTime;


    clock_gettime(CLOCK_REALTIME, &sT);
    printf("\n%ld.%09ld\n" ,sT.tv_sec,sT.tv_nsec);  

    clock_gettime(CLOCK_REALTIME, &eT);
    printf("\n%ld.%09ld %ld uSec\n" , eT.tv_sec, eT.tv_nsec, ((eT.tv_sec - 
sT.tv_sec)*1000000 + (eT.tv_nsec-sT.tv_nsec)/1000)); 


    return 0;
}


Just two gettime are causing 2894 to 3200 micro sec (uSec) time difference, how 
is such huge amount possible!??


Can someone throw some light on this? and can it be improved or fixed?


I have tried the following to investigate.


1) Running same code on my i7 

    it gives 80uS to ~300 uS delay.


2) Trying TimeVal and GetTimeOfDay -- gives worse result! 


3) Running NTP:

   No impact.


Thank you, and hope you find it interesting as well :)

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/7d0c12ca-1e1a-4754-9b30-8f1a75c1dc6c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



Sent with mySecureMail.
http://www.mysecurephone.eu/

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/36a75d73-46a7-40e8-a646-5b4f57b5fc09%40email.android.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to