PEP 418: Replace "Resolution" column with "C Resolution", and "Precision" with
"OS Resolution" Document also these two columns.
This commit is contained in:
parent
464a098160
commit
94fb568222
279
pep-0418.txt
279
pep-0418.txt
|
@ -912,43 +912,48 @@ Operating system time functions
|
||||||
Monotonic Clocks
|
Monotonic Clocks
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
========================= ========== =============== ============= ===============
|
========================= ============ =============== ============= ===============
|
||||||
Name Resolution Adjusted Include sleep Include suspend
|
Name C Resolution Adjusted Include Sleep Include Suspend
|
||||||
========================= ========== =============== ============= ===============
|
========================= ============ =============== ============= ===============
|
||||||
gethrtime() 1 ns No Yes Yes
|
gethrtime() 1 ns No Yes Yes
|
||||||
CLOCK_HIGHRES 1 ns No Yes Yes
|
CLOCK_HIGHRES 1 ns No Yes Yes
|
||||||
CLOCK_MONOTONIC 1 ns Slewed on Linux Yes No
|
CLOCK_MONOTONIC 1 ns Slewed on Linux Yes No
|
||||||
CLOCK_MONOTONIC_COARSE 1 ns Slewed on Linux Yes No
|
CLOCK_MONOTONIC_COARSE 1 ns Slewed on Linux Yes No
|
||||||
CLOCK_MONOTONIC_RAW 1 ns No Yes No
|
CLOCK_MONOTONIC_RAW 1 ns No Yes No
|
||||||
CLOCK_BOOTTIME 1 ns ? Yes Yes
|
CLOCK_BOOTTIME 1 ns ? Yes Yes
|
||||||
CLOCK_UPTIME 1 ns No Yes ?
|
CLOCK_UPTIME 1 ns No Yes ?
|
||||||
mach_absolute_time() 1 ns No Yes No
|
mach_absolute_time() 1 ns No Yes No
|
||||||
QueryPerformanceCounter() \- No Yes ?
|
QueryPerformanceCounter() \- No Yes ?
|
||||||
GetTickCount[64]() 1 ms No Yes Yes
|
GetTickCount[64]() 1 ms No Yes Yes
|
||||||
timeGetTime() 1 ms No Yes ?
|
timeGetTime() 1 ms No Yes ?
|
||||||
========================= ========== =============== ============= ===============
|
========================= ============ =============== ============= ===============
|
||||||
|
|
||||||
|
The "C Resolution" column is the resolution of the underlying C
|
||||||
|
structure.
|
||||||
|
|
||||||
Examples of clock precision on x86_64:
|
Examples of clock precision on x86_64:
|
||||||
|
|
||||||
========================= ================ ========= =================
|
========================= ================ ============= =================
|
||||||
Name Operating system Precision Python Resolution
|
Name Operating system OS Resolution Python Resolution
|
||||||
========================= ================ ========= =================
|
========================= ================ ============= =================
|
||||||
QueryPerformanceCounter Windows Seven 10 ns 10 ns
|
QueryPerformanceCounter Windows Seven 10 ns 10 ns
|
||||||
CLOCK_HIGHRES SunOS 5.11 2 ns 265 ns
|
CLOCK_HIGHRES SunOS 5.11 2 ns 265 ns
|
||||||
CLOCK_MONOTONIC Linux 3.0 1 ns 322 ns
|
CLOCK_MONOTONIC Linux 3.0 1 ns 322 ns
|
||||||
CLOCK_MONOTONIC_RAW Linux 3.3 1 ns 628 ns
|
CLOCK_MONOTONIC_RAW Linux 3.3 1 ns 628 ns
|
||||||
CLOCK_BOOTTIME Linux 3.3 1 ns 628 ns
|
CLOCK_BOOTTIME Linux 3.3 1 ns 628 ns
|
||||||
mach_absolute_time() Mac OS 10.6 1 ns 3 µs
|
mach_absolute_time() Mac OS 10.6 1 ns 3 µs
|
||||||
CLOCK_MONOTONIC FreeBSD 8.2 11 ns 5 µs
|
CLOCK_MONOTONIC FreeBSD 8.2 11 ns 5 µs
|
||||||
CLOCK_MONOTONIC OpenBSD 5.0 10 ms 5 µs
|
CLOCK_MONOTONIC OpenBSD 5.0 10 ms 5 µs
|
||||||
CLOCK_UPTIME FreeBSD 8.2 11 ns 6 µs
|
CLOCK_UPTIME FreeBSD 8.2 11 ns 6 µs
|
||||||
CLOCK_MONOTONIC_COARSE Linux 3.3 1 ms 1 ms
|
CLOCK_MONOTONIC_COARSE Linux 3.3 1 ms 1 ms
|
||||||
CLOCK_MONOTONIC_COARSE Linux 3.0 4 ms 4 ms
|
CLOCK_MONOTONIC_COARSE Linux 3.0 4 ms 4 ms
|
||||||
GetTickCount64() Windows Seven 16 ms 15 ms
|
GetTickCount64() Windows Seven 16 ms 15 ms
|
||||||
========================= ================ ========= =================
|
========================= ================ ============= =================
|
||||||
|
|
||||||
The "Python Resolution" column was filled using the
|
The "OS Resolution" is the resolution announced by the operating
|
||||||
`clock_resolution.py
|
system.
|
||||||
|
The "Python Resolution" is the smallest difference between two calls
|
||||||
|
to the time function computed in Python using the `clock_resolution.py
|
||||||
<http://hg.python.org/peps/file/tip/pep-0418/clock_resolution.py>`_
|
<http://hg.python.org/peps/file/tip/pep-0418/clock_resolution.py>`_
|
||||||
program.
|
program.
|
||||||
|
|
||||||
|
@ -1172,35 +1177,40 @@ On Solaris, gethrtime() is the same as clock_gettime(CLOCK_MONOTONIC).
|
||||||
System Time
|
System Time
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
========================= =============== ============= ===============
|
========================= ============ ============= ===============
|
||||||
Name Resolution Include sleep Include suspend
|
Name C Resolution Include Sleep Include Suspend
|
||||||
========================= =============== ============= ===============
|
========================= ============ ============= ===============
|
||||||
CLOCK_REALTIME 1 ns Yes Yes
|
CLOCK_REALTIME 1 ns Yes Yes
|
||||||
CLOCK_REALTIME_COARSE 1 ns Yes Yes
|
CLOCK_REALTIME_COARSE 1 ns Yes Yes
|
||||||
GetSystemTimeAsFileTime 100 ns Yes Yes
|
GetSystemTimeAsFileTime 100 ns Yes Yes
|
||||||
gettimeofday() 1 µs Yes Yes
|
gettimeofday() 1 µs Yes Yes
|
||||||
ftime() 1 ms Yes Yes
|
ftime() 1 ms Yes Yes
|
||||||
time() 1 sec Yes Yes
|
time() 1 sec Yes Yes
|
||||||
========================= =============== ============= ===============
|
========================= ============ ============= ===============
|
||||||
|
|
||||||
|
The "C Resolution" column is the resolution of the underlying C
|
||||||
|
structure.
|
||||||
|
|
||||||
Examples of clock precision on x86_64:
|
Examples of clock precision on x86_64:
|
||||||
|
|
||||||
========================= ================ ========= =================
|
========================= ================ ============= =================
|
||||||
Name Operating system Precision Python Resolution
|
Name Operating system OS Resolution Python Resolution
|
||||||
========================= ================ ========= =================
|
========================= ================ ============= =================
|
||||||
CLOCK_REALTIME SunOS 5.11 10 ms 238 ns
|
CLOCK_REALTIME SunOS 5.11 10 ms 238 ns
|
||||||
CLOCK_REALTIME Linux 3.0 1 ns 238 ns
|
CLOCK_REALTIME Linux 3.0 1 ns 238 ns
|
||||||
gettimeofday() Mac OS 10.6 1 µs 4 µs
|
gettimeofday() Mac OS 10.6 1 µs 4 µs
|
||||||
CLOCK_REALTIME FreeBSD 8.2 11 ns 6 µs
|
CLOCK_REALTIME FreeBSD 8.2 11 ns 6 µs
|
||||||
CLOCK_REALTIME OpenBSD 5.0 10 ms 5 µs
|
CLOCK_REALTIME OpenBSD 5.0 10 ms 5 µs
|
||||||
CLOCK_REALTIME_COARSE Linux 3.3 1 ms 1 ms
|
CLOCK_REALTIME_COARSE Linux 3.3 1 ms 1 ms
|
||||||
CLOCK_REALTIME_COARSE Linux 3.0 4 ms 4 ms
|
CLOCK_REALTIME_COARSE Linux 3.0 4 ms 4 ms
|
||||||
GetSystemTimeAsFileTime() Windows Seven 16 ms 1 ms
|
GetSystemTimeAsFileTime() Windows Seven 16 ms 1 ms
|
||||||
ftime() Windows Seven \- 1 ms
|
ftime() Windows Seven \- 1 ms
|
||||||
========================= ================ ========= =================
|
========================= ================ ============= =================
|
||||||
|
|
||||||
The "Python Resolution" column was filled using the
|
The "OS Resolution" is the resolution announced by the operating
|
||||||
`clock_resolution.py
|
system.
|
||||||
|
The "Python Resolution" is the smallest difference between two calls
|
||||||
|
to the time function computed in Python using the `clock_resolution.py
|
||||||
<http://hg.python.org/peps/file/tip/pep-0418/clock_resolution.py>`_
|
<http://hg.python.org/peps/file/tip/pep-0418/clock_resolution.py>`_
|
||||||
program.
|
program.
|
||||||
|
|
||||||
|
@ -1242,45 +1252,50 @@ Process Time
|
||||||
The process time cannot be set. It is not monotonic: the clocks stop
|
The process time cannot be set. It is not monotonic: the clocks stop
|
||||||
while the process is idle.
|
while the process is idle.
|
||||||
|
|
||||||
========================= ========== ============================ ===============
|
========================= ============ ============================ ===============
|
||||||
Name Resolution Include sleep Include suspend
|
Name C Resolution Include Sleep Include Suspend
|
||||||
========================= ========== ============================ ===============
|
========================= ============ ============================ ===============
|
||||||
GetProcessTimes() 100 ns No No
|
GetProcessTimes() 100 ns No No
|
||||||
CLOCK_PROCESS_CPUTIME_ID 1 ns No No
|
CLOCK_PROCESS_CPUTIME_ID 1 ns No No
|
||||||
getrusage(RUSAGE_SELF) 1 µs No No
|
getrusage(RUSAGE_SELF) 1 µs No No
|
||||||
times() \- No No
|
times() \- No No
|
||||||
clock() \- Yes on Windows, No otherwise No
|
clock() \- Yes on Windows, No otherwise No
|
||||||
========================= ========== ============================ ===============
|
========================= ============ ============================ ===============
|
||||||
|
|
||||||
|
The "C Resolution" column is the resolution of the underlying C
|
||||||
|
structure.
|
||||||
|
|
||||||
Examples of clock precision on x86_64:
|
Examples of clock precision on x86_64:
|
||||||
|
|
||||||
========================= ================ ========= ===================
|
========================= ================ ============= ===================
|
||||||
Name Operating system Precision Python Resolution
|
Name Operating system OS Resolution Python Resolution
|
||||||
========================= ================ ========= ===================
|
========================= ================ ============= ===================
|
||||||
CLOCK_PROCESS_CPUTIME_ID Linux 3.3 1 ns 1 ns
|
CLOCK_PROCESS_CPUTIME_ID Linux 3.3 1 ns 1 ns
|
||||||
CLOCK_PROF FreeBSD 8.2 10 ms 1 µs
|
CLOCK_PROF FreeBSD 8.2 10 ms 1 µs
|
||||||
getrusage(RUSAGE_SELF) FreeBSD 8.2 \- 1 µs
|
getrusage(RUSAGE_SELF) FreeBSD 8.2 \- 1 µs
|
||||||
getrusage(RUSAGE_SELF) SunOS 5.11 \- 1 µs
|
getrusage(RUSAGE_SELF) SunOS 5.11 \- 1 µs
|
||||||
CLOCK_PROCESS_CPUTIME_ID Linux 3.0 1 ns 1 µs
|
CLOCK_PROCESS_CPUTIME_ID Linux 3.0 1 ns 1 µs
|
||||||
getrusage(RUSAGE_SELF) Mac OS 10.6 \- 5 µs
|
getrusage(RUSAGE_SELF) Mac OS 10.6 \- 5 µs
|
||||||
clock() Mac OS 10.6 1 µs 5 µs
|
clock() Mac OS 10.6 1 µs 5 µs
|
||||||
CLOCK_PROF OpenBSD 5.0 \- 5 µs
|
CLOCK_PROF OpenBSD 5.0 \- 5 µs
|
||||||
getrusage(RUSAGE_SELF) Linux 3.0 \- 4 ms
|
getrusage(RUSAGE_SELF) Linux 3.0 \- 4 ms
|
||||||
getrusage(RUSAGE_SELF) OpenBSD 5.0 \- 8 ms
|
getrusage(RUSAGE_SELF) OpenBSD 5.0 \- 8 ms
|
||||||
clock() FreeBSD 8.2 8 ms 8 ms
|
clock() FreeBSD 8.2 8 ms 8 ms
|
||||||
clock() Linux 3.0 1 µs 10 ms
|
clock() Linux 3.0 1 µs 10 ms
|
||||||
times() Linux 3.0 10 ms 10 ms
|
times() Linux 3.0 10 ms 10 ms
|
||||||
clock() OpenBSD 5.0 10 ms 10 ms
|
clock() OpenBSD 5.0 10 ms 10 ms
|
||||||
times() OpenBSD 5.0 10 ms 10 ms
|
times() OpenBSD 5.0 10 ms 10 ms
|
||||||
times() Mac OS 10.6 10 ms 10 ms
|
times() Mac OS 10.6 10 ms 10 ms
|
||||||
clock() SunOS 5.11 1 µs 10 ms
|
clock() SunOS 5.11 1 µs 10 ms
|
||||||
times() SunOS 5.11 1 µs 10 ms
|
times() SunOS 5.11 1 µs 10 ms
|
||||||
GetProcessTimes() Windows Seven 16 ms 16 ms
|
GetProcessTimes() Windows Seven 16 ms 16 ms
|
||||||
clock() Windows Seven 1 ms 1 ms
|
clock() Windows Seven 1 ms 1 ms
|
||||||
========================= ================ ========= ===================
|
========================= ================ ============= ===================
|
||||||
|
|
||||||
The "Python Resolution" column was filled using the
|
The "OS Resolution" is the resolution announced by the operating
|
||||||
`clock_resolution.py
|
system.
|
||||||
|
The "Python Resolution" is the smallest difference between two calls
|
||||||
|
to the time function computed in Python using the `clock_resolution.py
|
||||||
<http://hg.python.org/peps/file/tip/pep-0418/clock_resolution.py>`_
|
<http://hg.python.org/peps/file/tip/pep-0418/clock_resolution.py>`_
|
||||||
program.
|
program.
|
||||||
|
|
||||||
|
@ -1321,25 +1336,30 @@ Thread Time
|
||||||
The thread time cannot be set. It is not monotonic: the clocks stop
|
The thread time cannot be set. It is not monotonic: the clocks stop
|
||||||
while the thread is idle.
|
while the thread is idle.
|
||||||
|
|
||||||
========================= ========== ============= ===============
|
========================= ============ ============= ===============
|
||||||
Name Resolution Include sleep Include suspend
|
Name C Resolution Include Sleep Include Suspend
|
||||||
========================= ========== ============= ===============
|
========================= ============ ============= ===============
|
||||||
CLOCK_THREAD_CPUTIME_ID 1 ns Yes Epoch changes
|
CLOCK_THREAD_CPUTIME_ID 1 ns Yes Epoch changes
|
||||||
GetThreadTimes() 100 ns No ?
|
GetThreadTimes() 100 ns No ?
|
||||||
========================= ========== ============= ===============
|
========================= ============ ============= ===============
|
||||||
|
|
||||||
|
The "C Resolution" column is the resolution of the underlying C
|
||||||
|
structure.
|
||||||
|
|
||||||
Examples of clock precision on x86_64:
|
Examples of clock precision on x86_64:
|
||||||
|
|
||||||
========================= ================ =============== =================
|
========================= ================ ============= =================
|
||||||
Name Operating system Precision Python Resolution
|
Name Operating system OS Resolution Python Resolution
|
||||||
========================= ================ =============== =================
|
========================= ================ ============= =================
|
||||||
CLOCK_THREAD_CPUTIME_ID FreeBSD 8.2 1 µs 1 µs
|
CLOCK_THREAD_CPUTIME_ID FreeBSD 8.2 1 µs 1 µs
|
||||||
CLOCK_THREAD_CPUTIME_ID Linux 3.3 1 ns 649 ns
|
CLOCK_THREAD_CPUTIME_ID Linux 3.3 1 ns 649 ns
|
||||||
GetThreadTimes() Windows Seven 16 ms 16 ms
|
GetThreadTimes() Windows Seven 16 ms 16 ms
|
||||||
========================= ================ =============== =================
|
========================= ================ ============= =================
|
||||||
|
|
||||||
The "Python Resolution" column was filled using the
|
The "OS Resolution" is the resolution announced by the operating
|
||||||
`clock_resolution.py
|
system.
|
||||||
|
The "Python Resolution" is the smallest difference between two calls
|
||||||
|
to the time function computed in Python using the `clock_resolution.py
|
||||||
<http://hg.python.org/peps/file/tip/pep-0418/clock_resolution.py>`_
|
<http://hg.python.org/peps/file/tip/pep-0418/clock_resolution.py>`_
|
||||||
program.
|
program.
|
||||||
|
|
||||||
|
@ -1388,29 +1408,32 @@ sleep duration is 90 seconds in the real time.
|
||||||
|
|
||||||
Sleep can be interrupted by a signal: the function fails with EINTR.
|
Sleep can be interrupted by a signal: the function fails with EINTR.
|
||||||
|
|
||||||
======================== ==========
|
======================== ============
|
||||||
Name Resolution
|
Name C Resolution
|
||||||
======================== ==========
|
======================== ============
|
||||||
nanosleep() 1 ns
|
nanosleep() 1 ns
|
||||||
clock_nanosleep() 1 ns
|
clock_nanosleep() 1 ns
|
||||||
usleep() 1 µs
|
usleep() 1 µs
|
||||||
delay() 1 µs
|
delay() 1 µs
|
||||||
sleep() 1 sec
|
sleep() 1 sec
|
||||||
======================== ==========
|
======================== ============
|
||||||
|
|
||||||
Other functions:
|
Other functions:
|
||||||
|
|
||||||
======================== ==========
|
======================== ============
|
||||||
Name Resolution
|
Name C Resolution
|
||||||
======================== ==========
|
======================== ============
|
||||||
sigtimedwait() 1 ns
|
sigtimedwait() 1 ns
|
||||||
pthread_cond_timedwait() 1 ns
|
pthread_cond_timedwait() 1 ns
|
||||||
sem_timedwait() 1 ns
|
sem_timedwait() 1 ns
|
||||||
select() 1 µs
|
select() 1 µs
|
||||||
epoll() 1 ms
|
epoll() 1 ms
|
||||||
poll() 1 ms
|
poll() 1 ms
|
||||||
WaitForSingleObject() 1 ms
|
WaitForSingleObject() 1 ms
|
||||||
======================== ==========
|
======================== ============
|
||||||
|
|
||||||
|
The "C Resolution" column is the resolution of the underlying C
|
||||||
|
structure.
|
||||||
|
|
||||||
|
|
||||||
Functions
|
Functions
|
||||||
|
|
Loading…
Reference in New Issue