[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: [Python-Dev] PEP 418 is too divisive and confusing and should be postponed Steven D'Aprano Sat Apr 07 04:00:30 2012

Victor Stinner wrote:
2012/4/7 Janzert <[EMAIL PROTECTED]>:
On 4/5/2012 6:32 AM, Victor Stinner wrote:
I prefer to use CLOCK_MONOTONIC, not because it is also available for
older Linux kernels, but because it is more reliable. Even if the
underlying clock source is unstable (unstable frequency), a delta of
two reads of the CLOCK_MONOTONIC clock is a result in *seconds*,
whereas CLOCK_MONOTONIC_RAW may use an unit a little bit bigger or
smaller than a second. time.monotonic() unit is the second, as written
in its documentation.
I believe the above is only true for sufficiently large time deltas. One of
the major purposes of NTP slewing is to give up some short term accuracy in
order to achieve long term accuracy (e.g. whenever the clock is found to be
ahead of real time it is purposefully ticked slower than real time).

I don't think that NTP works like that. NTP only uses very smooth adjustements:

""slewing": change the clock frequency to be slightly faster or slower
(which is done with adjtime()). Since the slew rate is limited to 0.5
ms/s, each second of adjustment requires an amortization interval of
2000 s. Thus, an adjustment of many seconds can take hours or days to

That is incorrect. NTP by default will only slew the clock for small discrepancies. For large discrepancies, it will step the clock, causing the time to jump. By default, "large" here means more than 128 milliseconds.

Yes, milliseconds.


In any case, NTP is not the only thing that adjusts the clock, e.g. the operating system will adjust the time for daylight savings.


Python-Dev mailing list