classification
Title: Add time.monotonic() function
Type: enhancement Stage: patch review
Components: Versions: Python 3.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: belopolsky, eric.araujo, giampaolo.rodola, haypo, ned.deily, pitrou, python-dev, r.david.murray, rosslagerwall, terry.reedy
Priority: normal Keywords: patch

Created on 2012-01-24 00:22 by haypo, last changed 2012-02-23 23:11 by haypo. This issue is now closed.

Files
File name Uploaded Description Edit
monotonic.patch haypo, 2012-01-24 00:22 review
Messages (11)
msg151868 - (view) Author: STINNER Victor (haypo) * (Python committer) Date: 2012-01-24 00:22
After time.wallclock() (issue #10278), let add a time.monotomic() function. It is similar to time.wallclock() (try to get the most accurate clock) but is not available if the system doesn't provide a monotonic clock. It may also fail at runtime if Python cannot find a monotonic clock, whereas time.clock() and time.wallclock() fallback on a wallclock which may go backward on NTP adjust.

The documentation of the patch should be improved :-)

wallclock() tests may be simplified or dropped because they may fail on NTP adjust.
msg152138 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2012-01-27 23:16
Do we actually yet another function, or could this be covered by adding a parameter such as monotonic=False, perhaps to wallclock().
msg152280 - (view) Author: STINNER Victor (haypo) * (Python committer) Date: 2012-01-29 23:09
> Do we actually yet another function, or could this be covered by adding a parameter such as monotonic=False, perhaps to wallclock().

A monotonic is a different clock, it would be surprising that an
argument uses another clock.
msg152505 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-02-03 13:40
I don’t understand why this new function would be useful.  Time-related modules in Python are already complicated.
msg152506 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2012-02-03 13:46
If you are trying to time something (an interval), having the time go backward can really screw up your data.  And that *will* happen on a system that is running NTP (or even just resets its time).  monotonic clocks were introduced at the OS level for a reason, and it seems reasonable for Python to expose them (when the are available) like it does other system resources.
msg152514 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-02-03 14:12
Thanks, now I see the usefulness.
msg152816 - (view) Author: Roundup Robot (python-dev) Date: 2012-02-07 22:29
New changeset 376ce937823c by Victor Stinner in branch 'default':
Issue #13846: Add time.monotonic(), monotonic clock.
http://hg.python.org/cpython/rev/376ce937823c
msg152860 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-02-08 14:25
Victor, I think the doc doesn’t say why the function is useful for people like me who don’t already know it.  David’s explanation could be reused.
msg153774 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-02-20 10:43
Boost has a monotonic time implementation (steady_clock) for OS X:
http://svn.boost.org/svn/boost/trunk/boost/chrono/detail/inlined/mac/chrono.hpp
msg154096 - (view) Author: Roundup Robot (python-dev) Date: 2012-02-23 23:10
New changeset 50b1f2d07011 by Victor Stinner in branch 'default':
Issue #13846: Enhance time.monotonic() documentation
http://hg.python.org/cpython/rev/50b1f2d07011
msg154097 - (view) Author: STINNER Victor (haypo) * (Python committer) Date: 2012-02-23 23:11
> Boost has a monotonic time implementation (steady_clock) for OS X

I opened a new issue for Mac OS X: #14104.

--

@Éric: I enhanced the doc. Feel free to complete or rewrite it if you have better information about such clocks.
History
Date User Action Args
2012-02-23 23:11:18hayposetmessages: + msg154097
2012-02-23 23:10:17python-devsetmessages: + msg154096
2012-02-20 10:43:23pitrousetnosy: + pitrou, ned.deily
messages: + msg153774
2012-02-08 14:25:30eric.araujosetmessages: + msg152860
2012-02-07 22:30:30hayposetstatus: open -> closed
resolution: fixed
2012-02-07 22:29:16python-devsetnosy: + python-dev
messages: + msg152816
2012-02-03 14:12:30eric.araujosetmessages: + msg152514
2012-02-03 13:46:44r.david.murraysetnosy: + r.david.murray
messages: + msg152506
2012-02-03 13:40:05eric.araujosetnosy: + eric.araujo
messages: + msg152505
2012-01-29 23:09:39hayposetmessages: + msg152280
2012-01-27 23:16:34terry.reedysetnosy: + terry.reedy
messages: + msg152138

type: enhancement
stage: patch review
2012-01-24 21:39:03giampaolo.rodolasetnosy: + giampaolo.rodola
2012-01-24 04:11:58rosslagerwallsetnosy: + rosslagerwall
2012-01-24 00:22:29haypocreate