#include <sys/time.h>

#define N 150000000 /* 150 Mb */
char A[N];

unsigned long 
difftime_ms(struct timeval prev, struct timeval curr)
{
    unsigned long a, b, c;

    if(prev.tv_sec == curr.tv_sec)
        return (curr.tv_usec - prev.tv_usec)/1000;

    a = (1000000 - prev.tv_usec);
    prev.tv_sec++;
    b = curr.tv_sec - prev.tv_sec;
    b = b * 1000000;
    return (a + b + curr.tv_usec) / 1000;

}

main()
{
    int i, j, r;
    struct timeval prev, curr;

    for(i = 0; i < N; i++)
        A[i] = 0;

    gettimeofday(&prev, 0);
		
    for(i = 0; i < N; i++)
        r = A[i];

    gettimeofday(&curr, 0);

    printf("%u, %u\n", prev.tv_sec, prev.tv_usec);
    printf("%u, %u\n", curr.tv_sec, curr.tv_usec);
    printf("milli second diff = %u\n", difftime_ms(prev, curr));
    
        
}

