elapsed time microseconds c++

hello,

I tried several ways ( clock(), gettimeofday()…) but I can get the proper way to measure the elapsed time in microseconds.

I am using eclipse to program in ansi c. Could anybody help me about how to measure the elapsed time in microsecond? Could it be possible to enclosed the code that I should use?

thank you so much and sorry for the inconveniences

Regards

Hi,
  use a search engine and look for "linux measure time nanoseconds".
Also: man clock_gettime

regards,
Nuno

If you have C++11 , look for chrono, it might be easier
http://en.cppreference.com/w/cpp/chrono

regards,
Nuno

Ansi C or C++ (as in the title)?
In Ansi C it might look like this:

#include <sys/time.h>
#include <stdio.h>
// compile with: gcc -Wall gettimeofday.c -o gettimeofday
void main()
{
    float elapsed_time;
    struct timeval start_time, end_time;
    gettimeofday( &start_time, NULL );
    for (;;){
        gettimeofday( &end_time, NULL );
        elapsed_time = end_time.tv_sec - start_time.tv_sec + (
end_time.tv_usec - start_time.tv_usec ) / 1e6;
        printf( "sec: %g \r", elapsed_time );
        }
}

hi, Sorry for disturbing you. How can I compile "gcc -Wall gettimeofday.c -o gettimeofday " in eclipse?

I got some errors:
Field “tv_sec” could not be resolved
Field “tv_usec” could not be resolved

symbol “cout” could not be resolved
symbol “endl” could not be resolved

symbol “std” could not be resolved

Sorry for the inconveniences

Regards

hi, Sorry for disturbing you. How can I compile "gcc -Wall
gettimeofday.c -o gettimeofday " in eclipse under ubuntu?

I don't know Eclipse too much, I compile such programs in terminal:
Open Terminal
cd to the folder where gettimeofday.c is
type in:
gcc -Wall gettimeofday.c -o gettimeofday
run the Porgram with
./gettimeofday

I got some errors:
Field "tv_sec" could not be resolved
Field "tv_usec" could not be resolved

Maybe you have to tell Eclipse:
- it is C (not C++)
- from where to include <sys/time.h>

HTH

The code works fine. Even with Eclipse.

How is it posible that you get errors about cout, endl and std. Those commands are not in the posted code.

Hi,

sorry it was my fault. I only have problems with:

Field “tv_sec” could not be resolved
Field “tv_usec” could not be resolved

the issue is that i can not find gettimeofday.c in ubuntu. I only find /usr/share/man/man2/gettimeofday.2.gz

sorry, i am quite new with this. how could i solve this issue?

Thank you so much

You have to save the code I provided as gettimeofday.c.....

However, I do not see what this has to do with BB(B). Do you want to
crosscompile with eclipse, or what are you intending to do???

My aim is program in ansi c my beaglebone black. I am using an ubuntu vm under mac os.

I am new in ubuntu and eclipse and this is the main problem, i guess :-S

I have a model that i would like to run into BB but i have problems to measure the elapsed time, i tried before with clock(), but looks like it doesn't measure properly the time. For this i am trying with gettimeofday, but i have the problems that i commented previously.

Looks like if eclipse could not link time.h and for this appear these errors. But maybe i am wrong

Really thanks to everybody for your help

Could you provide us your source, the compiler/linker output and your compile command?

Hi Ignacio

My aim is program in ansi c my beaglebone black. I am using an ubuntu vm under mac os.

I am new in ubuntu and eclipse and this is the main problem, i guess :-S

I have a model that i would like to run into BB but i have problems to measure the elapsed time, i tried before with clock(), but looks like it doesn't measure properly the time. For this i am trying with gettimeofday, but i have the problems that i commented previously.

Looks like if eclipse could not link time.h and for this appear these errors. But maybe i am wrong

Eclipse with an installed crosscompiler is only one way to go and it
certainly makes sense if you have a huge Project with thousands of
lines of code, X, etc. But I usually code only small terminal programs
(in ANSI C) that read in some ports, write to some ports, do some
calculations and write the results to a excel readable text file. For
such problems I am too lazy to install Eclipse with all the gnuaebi
etc. stuff....
So, I edit and compile my programs directly on BB, usually over ssh
and sftp (usually from my Mac, with Cyberduck). The only thing you
need on BB is gcc and if you have a bit bigger projects make.

Starting with "Hello World" is always a good idea....
Connect to your BB with ssh
nano helloworld.c
type in your code, quit and save with "ctrl x"
gcc -Wall helloworld.c -o helloworld
And run your program with
./helloworld
you need the ./ for running terminal programs in the same folder....

Have fun!

Hi,

My big code compiles properly in eclipse. As you said I started with hello world and small codes. My problems became only measuring elapsed time. With small codes, just to measure elapsed time it still doesn’t work. I tried with clock() as i said but the elapsed time showed in the terminal is wrong. Now I am trying with the code supplied by you, because i would like to try with gettimeofday but errors commented before.

I will put my compiler, linker and assembler later. I am not in my personal computer now.

really thanks for your help.

hi,

Looks like there is something wrong in eclipse. I compiled the code gettimeofday directly from ubuntu terminal and it works properly. Also the code works in my beaglebone :slight_smile:

BUT… :-S. I am trying to run my code. It compiles and run under ubuntu but when i try to run in in my beaglebone i got the error:
-sh: ./hil: cannot execute binary file

I am using the following command in my beaglebone:
chmod ugo+x hil
./hil

I am using this includes:
stdio.h
stdlib.h
math.h
sys/time.h

any suggestion? thanks in advance to everybody

Did you use a crosscompiler?
You can also compile your code on your beaglebone.

Hi,

Whoops - finger troubles…