[Numpy-discussion] extracting a random subset of a vector
Robert Kern
rkern at ucsd.edu
Wed Sep 8 02:30:14 EDT 2004
Curzio Basso wrote:
> Robert Kern wrote:
>
> >>>> a question about the method: isn't a bit risky to use the clock()
> for timing the performance? The usual argument is that CPU allocates
> time for different processes, and the allocation could vary.
> >>>
> >>>
> >>> that's why I use time.clock() rather than time.time().
> >>
> >>
> >> Perhaps clearing up a mutually divergent assumption: time.clock()
> measures CPU time on POSIX and wallclock time (with higher precision
> than time.time()) on Win32.
> >
> >
> > FWIW, the idiom recommended by Tim Peters is the following:
> >
> > import time
> > import sys
> >
> > if sys.platform == 'win32':
> > now = time.clock
> > else:
> > now = time.time
> >
> > and then using now() to get the current time.
>
>
> Ok, now I'm really confused...
>
> From the doc of the module 'time': the clock function "return the
> current processor time as a floating point number expressed in seconds."
> AFAIK, the processor time is not the time spent in the process calling
> the function. Or is it? Anyway, "this is the function to use for
> benchmarkingPython or timing algorithms.", that is, if processor time is
> good enough, than use time.clock() and not time.time(), irregardless of
> the system, right?
I think that the documentation is wrong.
C.f.
http://groups.google.com/groups?selm=mailman.1475.1092179147.5135.python-list%40python.org
And the relevant snippet from timeit.py:
if sys.platform == "win32":
# On Windows, the best timer is time.clock()
default_timer = time.clock
else:
# On most other platforms the best timer is time.time()
default_timer = time.time
I will note from personal experience that on Macs, time.clock is
especially bad for benchmarking.
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the NumPy-Discussion
mailing list