Недавно я создавал приложение для регистрации ошибок, а затем использовал метод точной маркировки входящих данных. Когда я говорю точно, я имею в виду, что каждая метка времени должна быть точной относительно друг друга (нет необходимости синхронизировать с атомными часами или что-то в этом роде).
Я использовал datetime.now() как первый удар, но это не идеально:
>>> for i in range(0,1000):
... datetime.datetime.now()
...
datetime.datetime(2008, 10, 1, 13, 17, 27, 562000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 562000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 562000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 562000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 578000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 578000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 578000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 578000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 578000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 609000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 609000)
datetime.datetime(2008, 10, 1, 13, 17, 27, 609000)
etc.
Изменения между часами для первой секунды образцов выглядят следующим образом:
uSecs difference
562000
578000 16000
609000 31000
625000 16000
640000 15000
656000 16000
687000 31000
703000 16000
718000 15000
750000 32000
765000 15000
781000 16000
796000 15000
828000 32000
843000 15000
859000 16000
890000 31000
906000 16000
921000 15000
937000 16000
968000 31000
984000 16000
Итак, похоже, что данные таймера обновляются только каждые ~ 15-32мс на моей машине. Проблема возникает, когда мы приходим к анализу данных, потому что сортировка с помощью чего-то другого, кроме отметки времени, а затем сортировка по метке времени снова может оставить данные в неправильном порядке (в хронологическом порядке). Было бы неплохо иметь временные метки с точностью до точки, что любой вызов генератора метки времени дает уникальную метку времени.
Я рассматривал некоторые методы, связанные с использованием вызова time.clock(), добавленного в начало datetime, но был бы признателен за решение, которое будет работать точно по потокам на одной машине. Любые предложения были бы очень благодарны.