[Python-checkins] cpython: Issue #17414: Add timeit, repeat, and default_timer to timeit.__all__.

terry.reedy python-checkins at python.org
Fri Mar 15 08:04:45 CET 2013


http://hg.python.org/cpython/rev/dda8a6b8a351
changeset:   82665:dda8a6b8a351
parent:      82663:c25bc2587c48
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Fri Mar 15 03:04:25 2013 -0400
summary:
  Issue #17414: Add timeit, repeat, and default_timer to timeit.__all__.
Revise module docstring and update itertools import and use.

files:
  Lib/timeit.py |  44 ++++++++++++++------------------------
  Misc/ACKS     |   2 +
  Misc/NEWS     |   2 +
  3 files changed, 20 insertions(+), 28 deletions(-)


diff --git a/Lib/timeit.py b/Lib/timeit.py
--- a/Lib/timeit.py
+++ b/Lib/timeit.py
@@ -31,38 +31,29 @@
 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.
 
-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
+pass statement.  It differs between versions.  The code here doesn't try
+to hide it, but you should be aware of it.  The baseline overhead can be
+measured by invoking the program without arguments.
 
-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
-be aware of it.  The baseline overhead can be measured by invoking the
-program without arguments.
+Classes:
 
-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.
+    Timer
+
+Functions:
+
+    timeit(string, string) -> float
+    repeat(string, string) -> list
+    default_timer() -> float
+
 """
 
 import gc
 import sys
 import time
-try:
-    import itertools
-except ImportError:
-    # Must be an older Python version (see timeit() below)
-    itertools = None
+import itertools
 
-__all__ = ["Timer"]
+__all__ = ["Timer", "timeit", "repeat", "default_timer"]
 
 dummy_src_name = "<timeit-src>"
 default_number = 1000000
@@ -180,10 +171,7 @@
         to one million.  The main statement, the setup statement and
         the timer function to be used are passed to the constructor.
         """
-        if itertools:
-            it = itertools.repeat(None, number)
-        else:
-            it = [None] * number
+        it = itertools.repeat(None, number)
         gcold = gc.isenabled()
         gc.disable()
         try:
diff --git a/Misc/ACKS b/Misc/ACKS
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -449,6 +449,7 @@
 Dag Gruneau
 Filip Gruszczyński
 Thomas Guettler
+Anuj Gupta
 Michael Guravage
 Lars Gustäbel
 Thomas Güttler
@@ -1359,3 +1360,4 @@
 Kai Zhu
 Tarek Ziadé
 Peter Åstrand
+
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -280,6 +280,8 @@
 Library
 -------
 
+- Issue #17414: Add timeit, repeat, and default_timer to timeit.__all__.
+
 - Issue #1285086: Get rid of the refcounting hack and speed up
   urllib.parse.unquote() and urllib.parse.unquote_to_bytes().
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list