mirror of https://github.com/python/cpython
Issue #17414: Add timeit, repeat, and default_timer to timeit.__all__.
Revise module docstring and update itertools import and use.
This commit is contained in:
parent
e95f7c3d27
commit
d49af5dc2e
|
@ -31,38 +31,29 @@ treated similarly.
|
||||||
If -n is not given, a suitable number of loops is calculated by trying
|
If -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 difference in default timer function is because on Windows,
|
|
||||||
clock() has microsecond granularity but time()'s granularity is 1/60th
|
|
||||||
of a second; on Unix, clock() has 1/100th of a second granularity and
|
|
||||||
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 -r option is
|
|
||||||
good for this; the default of 3 repetitions is probably enough in most
|
|
||||||
cases. On Unix, you can use clock() to measure CPU time.
|
|
||||||
|
|
||||||
Note: there is a certain baseline overhead associated with executing a
|
Note: there is a certain baseline overhead associated with executing a
|
||||||
pass statement. The code here doesn't try to hide it, but you should
|
pass statement. It differs between versions. The code here doesn't try
|
||||||
be aware of it. The baseline overhead can be measured by invoking the
|
to hide it, but you should be aware of it. The baseline overhead can be
|
||||||
program without arguments.
|
measured by invoking the program without arguments.
|
||||||
|
|
||||||
|
Classes:
|
||||||
|
|
||||||
|
Timer
|
||||||
|
|
||||||
|
Functions:
|
||||||
|
|
||||||
|
timeit(string, string) -> float
|
||||||
|
repeat(string, string) -> list
|
||||||
|
default_timer() -> float
|
||||||
|
|
||||||
The baseline overhead differs between Python versions! Also, to
|
|
||||||
fairly compare older Python versions to Python 2.3, you may want to
|
|
||||||
use python -O for the older versions to avoid timing SET_LINENO
|
|
||||||
instructions.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import gc
|
import gc
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
try:
|
import itertools
|
||||||
import itertools
|
|
||||||
except ImportError:
|
|
||||||
# Must be an older Python version (see timeit() below)
|
|
||||||
itertools = None
|
|
||||||
|
|
||||||
__all__ = ["Timer"]
|
__all__ = ["Timer", "timeit", "repeat", "default_timer"]
|
||||||
|
|
||||||
dummy_src_name = "<timeit-src>"
|
dummy_src_name = "<timeit-src>"
|
||||||
default_number = 1000000
|
default_number = 1000000
|
||||||
|
@ -180,10 +171,7 @@ class Timer:
|
||||||
to one million. The main statement, the setup statement and
|
to one million. The main statement, the setup statement and
|
||||||
the timer function to be used are passed to the constructor.
|
the timer function to be used are passed to the constructor.
|
||||||
"""
|
"""
|
||||||
if itertools:
|
it = itertools.repeat(None, number)
|
||||||
it = itertools.repeat(None, number)
|
|
||||||
else:
|
|
||||||
it = [None] * number
|
|
||||||
gcold = gc.isenabled()
|
gcold = gc.isenabled()
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -449,6 +449,7 @@ Eric Groo
|
||||||
Dag Gruneau
|
Dag Gruneau
|
||||||
Filip Gruszczyński
|
Filip Gruszczyński
|
||||||
Thomas Guettler
|
Thomas Guettler
|
||||||
|
Anuj Gupta
|
||||||
Michael Guravage
|
Michael Guravage
|
||||||
Lars Gustäbel
|
Lars Gustäbel
|
||||||
Thomas Güttler
|
Thomas Güttler
|
||||||
|
@ -1359,3 +1360,4 @@ Cheng Zhang
|
||||||
Kai Zhu
|
Kai Zhu
|
||||||
Tarek Ziadé
|
Tarek Ziadé
|
||||||
Peter Åstrand
|
Peter Åstrand
|
||||||
|
|
||||||
|
|
|
@ -280,6 +280,8 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #17414: Add timeit, repeat, and default_timer to timeit.__all__.
|
||||||
|
|
||||||
- Issue #1285086: Get rid of the refcounting hack and speed up
|
- Issue #1285086: Get rid of the refcounting hack and speed up
|
||||||
urllib.parse.unquote() and urllib.parse.unquote_to_bytes().
|
urllib.parse.unquote() and urllib.parse.unquote_to_bytes().
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue