On Thu, 7 Dec 2000, Christopher Friesen wrote:
> Kotsovinos Vangelis wrote:
> >
> > Is there any way to measure (with microsecond accuracy) the time of a
> > program execution (without using Machine Specific Registers) ?
> > I've already tried getrusage(), times() and clock() but they all have
> > 10 millisecond accuracy, even though they claim to have microsecond
> > acuracy.
> > The only thing that seems to work is to use one of the tools that measure
> > performanc through accessing the machine specific registers. They give you
> > the ability to measure the clock cycles used, but their accuracy is also
> > very low from what I have seen up to now.
>
> Can you not just use something like gettimeofday()? Do two consecutive calls to
> find the execution time of the instruction itself, and then do two calls on
> either side of the program execution. Subtract the instruction execution time
> from the delta, and that should give a pretty good idea of execution time.
Well, it is a pretty complex program that I want to measure, with more
than one modules that run one after another... they sleep and use signals
to wake each other up, they use semaphores etc. What I want to measure is
the time the program is running (not waiting for other processes or
waiting for a signal etc).
Also, there are other processes running on the
system (for example, my program needs about 50 seconds of real time to
execute and I estimate the time it is "running" to be about 5000-10000
microseconds)...
Thanks anyway,
Vangelis
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/