Issue #13478: document timeit.default_timer()

This commit is contained in:
Sandro Tosi 2012-04-24 18:11:29 +02:00
parent 45c6a3cae7
commit 3f0f5776cd
1 changed files with 14 additions and 8 deletions

View File

@ -101,9 +101,19 @@ The module defines the following public class:
timeit.Timer('for i in xrange(10): oct(i)', 'gc.enable()').timeit() timeit.Timer('for i in xrange(10): oct(i)', 'gc.enable()').timeit()
Starting with version 2.6, the module also defines two convenience functions: The module also defines three convenience functions:
.. function:: default_timer()
Define a default timer, in a platform specific manner. On Windows,
:func:`time.clock` has microsecond granularity but :func:`time.time`'s
granularity is 1/60th of a second; on Unix, :func:`time.clock` has 1/100th of
a second granularity and :func:`time.time` is much more precise. On either
platform, :func:`default_timer` measures wall clock time, not the CPU
time. This means that other processes running on the same computer may
interfere with the timing.
.. function:: repeat(stmt[, setup[, timer[, repeat=3 [, number=1000000]]]]) .. function:: repeat(stmt[, setup[, timer[, repeat=3 [, number=1000000]]]])
Create a :class:`Timer` instance with the given statement, setup code and timer Create a :class:`Timer` instance with the given statement, setup code and timer
@ -168,13 +178,9 @@ similarly.
If :option:`-n` is not given, a suitable number of loops is calculated by trying If :option:`-n` is not given, a suitable number of loops is calculated by trying
successive powers of 10 until the total time is at least 0.2 seconds. successive powers of 10 until the total time is at least 0.2 seconds.
The default timer function is platform dependent. On Windows, :func:`default_timer` measurations can be affected by other programs running on
:func:`time.clock` has microsecond granularity but :func:`time.time`'s the same machine, so
granularity is 1/60th of a second; on Unix, :func:`time.clock` has 1/100th of a the best thing to do when accurate timing is necessary is to repeat
second granularity and :func:`time.time` is much more precise. On either
platform, the default timer functions measure wall clock time, not the CPU time.
This means that other processes running on the same computer may interfere with
the timing. The best thing to do when accurate timing is necessary is to repeat
the timing a few times and use the best time. The :option:`-r` option is good the timing a few times and use the best time. The :option:`-r` option is good
for this; the default of 3 repetitions is probably enough in most cases. On for this; the default of 3 repetitions is probably enough in most cases. On
Unix, you can use :func:`time.clock` to measure CPU time. Unix, you can use :func:`time.clock` to measure CPU time.