[Python-checkins] peps: PEP 418: Remove duplicate info about clock resolution
victor.stinner
python-checkins at python.org
Fri Apr 13 02:17:45 CEST 2012
http://hg.python.org/peps/rev/89f8ecf2d78a
changeset: 4239:89f8ecf2d78a
user: Victor Stinner <victor.stinner at gmail.com>
date: Fri Apr 13 02:16:55 2012 +0200
summary:
PEP 418: Remove duplicate info about clock resolution
files:
pep-0418.txt | 72 ++++++++++-----------------------------
1 files changed, 19 insertions(+), 53 deletions(-)
diff --git a/pep-0418.txt b/pep-0418.txt
--- a/pep-0418.txt
+++ b/pep-0418.txt
@@ -264,23 +264,19 @@
def time():
if hasattr(time, "clock_gettime"):
try:
- # resolution = 1 nanosecond
return time.clock_gettime(time.CLOCK_REALTIME)
except OSError:
# CLOCK_REALTIME is not supported (unlikely)
pass
if hasattr(_time, "gettimeofday"):
try:
- # resolution = 1 microsecond
return _time.gettimeofday()
except OSError:
# gettimeofday() should not fail
pass
if hasattr(_time, "ftime"):
- # resolution = 1 millisecond
return _time.ftime()
else:
- # resolution = 1 second
return _time.time()
@@ -722,9 +718,9 @@
GetTickCount Windows Seven 15.6 ms
========================= ================ ===============
-For CLOCK_MONOTONIC and CLOCK_MONOTONIC_RAW, the precision of this
-table is the result of ``clock_getres()``. It looks like Linux does
-not implement ``clock_getres()`` and always returns 1 nanosecond.
+For CLOCK_xxx clocks, the precision of this table is the result of
+``clock_getres()``. It looks like Linux does not implement ``clock_getres()``
+and always returns 1 nanosecond.
mach_absolute_time
^^^^^^^^^^^^^^^^^^
@@ -743,8 +739,6 @@
an Intel CPU: `Different behaviour of mach_absolute_time() on i386/ppc
<http://lists.apple.com/archives/PerfOptimization-dev/2006/Jul/msg00024.html>`_.
-mach_absolute_time() has a resolution of 1 nanosecond.
-
CLOCK_MONOTONIC, CLOCK_MONOTONIC_RAW, CLOCK_BOOTTIME
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -792,9 +786,6 @@
clock, even if the standard C library supports it. For example,
CLOCK_MONOTONIC_RAW requires a kernel version 2.6.28 or later.
-``clock_getres()`` gives the clock resolution. It is 1 nanosecond on
-Linux.
-
.. note::
``clock_gettime()`` requires to link the program against the rt
@@ -881,15 +872,14 @@
GetTickCount64() was added to Windows Vista and Windows Server 2008.
-The clock resolution is 1 millisecond. Its precision is usually
-around 15 ms. It is possible to improve the precision using the
-`undocumented NtSetTimerResolution() function
+It is possible to improve the precision using the `undocumented
+NtSetTimerResolution() function
<http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Time/NtSetTimerResolution.html>`_.
-There are applications using this undocumented function, example:
-`Timer Resolution <http://www.lucashale.com/timer-resolution/>`_.
+There are applications using this undocumented function, example: `Timer
+Resolution <http://www.lucashale.com/timer-resolution/>`_.
WaitForSingleObject() uses the same timer as GetTickCount() with the
-same resolution.
+same precision.
GetTickCount() has an precision of 55 ms on Windows 9x.
@@ -990,16 +980,9 @@
Windows: GetSystemTimeAsFileTime
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The system time can be read using GetSystemTimeAsFileTime(), ftime()
-and time().
-
-The system time resolution can be read using
-GetSystemTimeAdjustment(). The precision is usually between 1
-millisecond and 15 milliseconds. Resolution:
-
-* GetSystemTimeAsFileTime(): 100 nanoseconds
-* ftime(): 1 millisecond
-* time(): 1 second
+The system time can be read using GetSystemTimeAsFileTime(), ftime() and
+time(). The precision of the system clock can be read using
+GetSystemTimeAdjustment().
Read the `GetSystemTimeAsFileTime() documentation
<http://msdn.microsoft.com/en-us/library/windows/desktop/ms724397(v=vs.85).aspx>`_.
@@ -1012,13 +995,6 @@
gettimeofday(), ftime(), time() and clock_gettime(CLOCK_REALTIME)
return the system clock.
-Resolution:
-
-* clock_gettime(): clock_getres(CLOCK_REALTIME)
-* gettimeofday(): 1 microsecond
-* ftime(): 1 millisecond
-* time(): 1 second
-
The system time can be set using settimeofday() or
clock_settime(CLOCK_REALTIME).
@@ -1071,7 +1047,8 @@
Functions
^^^^^^^^^
-* Windows: GetProcessTimes()
+* Windows: GetProcessTimes(). The precision can be read using
+ GetSystemTimeAdjustment().
* clock_gettime(CLOCK_PROCESS_CPUTIME_ID): High-resolution per-process
timer from the CPU.
* clock():
@@ -1085,13 +1062,6 @@
* times()
* getrusage(): ru_utime and ru_stime fields
-Resolution:
-
-* clock() rate is CLOCKS_PER_SEC. It was called CLK_TCK in Microsoft
- C before 6.0.
-* The clock resolution can be read using clock_getres().
-* GetProcessTimes(): call GetSystemTimeAdjustment().
-
Python source code includes a portable library to get the process time (CPU
time): `Tools/pybench/systimes.py
<http://hg.python.org/cpython/file/tip/Tools/pybench/systimes.py>`_.
@@ -1128,15 +1098,11 @@
Functions
^^^^^^^^^
-* Windows: GetThreadTimes()
+* Windows: GetThreadTimes(). The precision can be read using
+ GetSystemTimeAdjustment().
* clock_gettime(CLOCK_THREAD_CPUTIME_ID): Thread-specific CPU-time
clock.
-Resolution:
-
-* CLOCK_THREAD_CPUTIME_ID: call clock_getres().
-* GetThreadTimes(): call GetSystemTimeAdjustment()
-
See also pthread_getcpuclockid().
@@ -1273,10 +1239,10 @@
* sem_timedwait(): "If the Timers option is supported, the timeout
shall be based on the CLOCK_REALTIME clock. If the Timers option is
not supported, the timeout shall be based on the system clock as
- returned by the time() function. The resolution of the timeout
- shall be the resolution of the clock on which it is based."
+ returned by the time() function. The precision of the timeout
+ shall be the precision of the clock on which it is based."
* WaitForSingleObject(): use the same timer than GetTickCount() with
- the same resolution.
+ the same precision.
Alternatives: API design
@@ -1336,7 +1302,7 @@
* time.MONOTONIC: clock cannot go backward
* time.STEADY: clock rate is steady and the clock is not adjusted
-* time.HIGHRES: clock with the highest resolutions
+* time.HIGHRES: clock with the highest precision
time.get_clock() returns None if the clock is found and so calls can
be chained using the or operator. Example::
--
Repository URL: http://hg.python.org/peps
More information about the Python-checkins
mailing list