Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #79310

Re: time.perf_counter in Python 2?

From Peter Otten <__peter__@web.de>
Subject Re: time.perf_counter in Python 2?
Date 2014-10-20 10:09 +0200
Organization None
References <m22emv$ki$1@ger.gmane.org>
Newsgroups comp.lang.python
Message-ID <mailman.14995.1413792597.18130.python-list@python.org> (permalink)

Show all headers | View raw


Florian Lindner wrote:

> Hello,
> 
> I wrote a script that does some time measurements. It uses
> time.perf_counter() from Python 3 which works very well. Now I need to
> backport it to python 2.
> 
> Docs say that time.clock() is way to go:
> 
> time.clock()
> On Unix, return the current processor time as a floating point number
> expressed in seconds. The precision, and in fact the very definition of
> the meaning of “processor time”, depends on that of the C function of the
> same name, but in any case, this is the function to use for benchmarking
> Python or timing algorithms.
> 
> On Windows, this function returns wall-clock seconds elapsed since the
> first call to this function, as a floating point number, based on the
> Win32 function QueryPerformanceCounter(). The resolution is typically
> better than one microsecond.
> 
> But for me it always returns the almost same number, nothing time like:
> 
> Python 2.7.3 (default, Feb 27 2014, 19:58:35)
> [GCC 4.6.3] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import time
>>>> time.clock()
> 0.03
>>>> time.clock()
> 0.03
>>>> time.clock()
> 0.04
>>>> time.clock()
> 0.04
> 
> 
> What's wrong there?

While clock is not the recommended timer on Linux the granularity is still 
higher over here:

>>> time.clock()
0.06874
>>> time.clock()
0.069221
>>> time.clock()
0.069782
>>> time.clock()
0.070309

That or you can type faster ;)

Here's an excerpt from the 2.7 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

In Python3.4 this has become

default_timer = time.perf_counter

So I'd go with timeit.default_timer().

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: time.perf_counter in Python 2? Peter Otten <__peter__@web.de> - 2014-10-20 10:09 +0200

csiph-web