On 2005-12-07, Fredrik Lundh <[EMAIL PROTECTED]> wrote: >> import time >> for i in range(10): >> print time.time()-time.time() >> >> After the first loop, I usually get one of three values: >> >> 3.099us, 2.14,us, 2.86us. > > I get two different values: > > -1.90734863281e-06 > -2.14576721191e-06 > > on this hardware (faster than the PC I'm using right now, but still not a > very fast machine). let's check a faster linux box: > > $ python2.4 test.py > -6.91413879395e-06 > -1.90734863281e-06 > -1.90734863281e-06 > -1.90734863281e-06 > -1.90734863281e-06 > -2.14576721191e-06 > -1.90734863281e-06 > -2.14576721191e-06 > -1.90734863281e-06 > -1.90734863281e-06 > > if I keep running the script over and over again, I do get individual > > -1.19209289551e-06 > > items from time to time on both machines...
We're seeing floating point representation issues. The resolution of the underlying call is exactly 1us. Calling gettimeofday() in a loop in C results in deltas of exactly 1 or 2 us. Python uses a C double to represent time, and a double doesn't have enough bit to accurately represent 1us resolution. -- Grant Edwards grante Yow! I'm a fuschia bowling at ball somewhere in Brittany visi.com -- http://mail.python.org/mailman/listinfo/python-list