On 02/26/2016 11:06 AM, Ranjan Maitra wrote:
On Fri, 26 Feb 2016 12:44:10 -0500 Tom Horsley
<horsley1953(a)gmail.com> wrote:
> On Fri, 26 Feb 2016 09:51:24 -0600
> Ranjan Maitra wrote:
>
>> How does this happen? The number of operations are exactly the same (or should
be).
> The number of operations in your program are the same, but
> your program is running on the same machine as the linux
> OS which has deamons running in the background, and may
> even be stopping to page in code your program needs, or grow
> pages as it allocates memory. Vast numbers of things
> affect timing. Even the stupid dynamic library load address
> randomization linux does can result in totally different
> cache hits in memory. The list goes on and on...
>
> Apart from linux, most motherboards these days have SMI
> interrupts happening behind everyone's back which leave
> missing chunks of time no one can account for.
Thank you! So, is there any way that these other processes can be separated out in the
time calculations? I can not come up with definitive statements unless I can do these
comparisons in a fair manner.
Best wishes.
Ranjan
__
Hi Ranjan,
you have to use virtual timers instead of hard clock timers.
Usually since you just want process time, then you start the itimer
at the very start of the process, and give it some very long time to
expire (say as long as max time). The just before call to exit, query
the itimer
structure values and print them out.
Cheers,
JD