Re: a faster way to gettimeofday?

From: Richard B. Johnson (root@chaos.analogic.com)
Date: Wed Mar 06 2002 - 11:54:46 EST


On Wed, 6 Mar 2002, Chris Friesen wrote:

> Ben Greear wrote:
> >
> > I have a program that I very often need to calculate the current
> > time, with milisecond accuracy. I've been using gettimeofday(),
> > but gprof shows it's taking a significant (10% or so) amount of
> > time. Is there a faster (and perhaps less portable?) way to get
> > the time information on x86? My program runs as root, so should
> > have any permissions it needs to use some backdoor hack if that
> > helps!
>
>
> #include <asm/msr.h>
>
> /* get this value from the "cpu MHz" line of /proc/cpuinfo */
> #define CLOCKSPEED xxxxxxxx
>
> int main()
> {
> unsigned int lowbegin, lowend, highbegin, highend;
> unsigned long long diff;
> double elapsed;
>
> rdtsc(lowbegin,highbegin);
>
> //do stuff
>
> rdtsc(lowend,highend);
>
> if (lowend < lowbegin)
> highend--;
>
> diff = (((unsigned long long) highend - highbegin) << 32) + (lowend -
> lowbegin);
>
> elapsed = (double) diff / CLOCKSPEED;
>
> /* elapsed now has time in microseconds, do whatever you wantwith it */
>
> return 0;
> }
>
>
> --
> Chris Friesen | MailStop: 043/33/F10
> Nortel Networks | work: (613) 765-0557
> 3500 Carling Avenue | fax: (613) 765-2986
> Nepean, ON K2H 8E9 Canada | email: cfriesen@nortelnetworks.com
> -

Also, a bit more accurate is enclosed.

Cheers,
Dick Johnson

Penguin : Linux version 2.4.18 on an i686 machine (799.53 BogoMips).

        Bill Gates? Who?



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Mar 07 2002 - 21:00:55 EST