c - clock_gettime always shows 0 -


i want measure wall clock time clock_gettime every time run code, shows 0. why that? (i want result in miliseconds.)

#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <time.h>  int main( int argc, char **argv )   {     struct timespec start, stop;     unsigned long accum;      if( clock_gettime( clock_realtime, &start) == -1 ) {       perror( "clock gettime" );       exit( exit_failure );     }      int i;     for(i=0; i<100000000; i++){int = 3; int b = 100; int c = a*b;}      //system( argv[1] );      if( clock_gettime( clock_realtime, &stop) == -1 ) {       perror( "clock gettime" );       exit( exit_failure );     }      accum = (unsigned long)( (stop.tv_sec - start.tv_sec) * 1000) + (unsigned long)( (stop.tv_nsec - start.tv_nsec) / 1000000 ) +0.5;     printf( "%lu\n", accum );     return( exit_success );   } 

because compiler optimizes away loop. inside loop can't simplified (by compiler is); create result. use (e.g. print) result after loop.

you try switch off optimisation(s) when compile. since current loop easy optimise away, may not make difference.


Comments

Popular posts from this blog

html - Styling progress bar with inline style -

java - Oracle Sql developer error: could not install some modules -

How to use autoclose brackets in Jupyter notebook? -