Монотонные часы на OSX

CLOCK_MONOTONIC не доступен, поэтому clock_gettime отсутствует.

Я читал в некоторых местах, что mach_absolute_time () может быть правильным способом, но после прочтения того, что это было «зависимое от процессора значение», я сразу же задался вопросом, использует ли он rtdsc внизу. Таким образом, значение может дрейфовать со временем, даже если оно является монотонным. Кроме того, проблемы со схожестью потоков могут привести к значительным отличиям в результате вызова функции (что делает ее не монотонной для всех ядер).

Конечно, это просто предположение. Кто-нибудь знает, как на самом деле работает mach_absolute_time? Я на самом деле ищу замену clock_gettime (CLOCK_MONOTONIC ... или что-то вроде этого для OSX. Независимо от того, что источник синхронизации, я ожидаю, по крайней мере, с точностью до миллисекунды и с точностью до миллисекунды.

Я просто хотел бы понять, какие часы доступны, какие часы являются монотонными, если определенные часы дрейфуют, имеют проблемы со схожестью потоков, не поддерживаются на всех аппаратных средствах Mac или принимают «сверхвысокие» значения. количество циклов процессора для выполнения.

Вот ссылки, которые мне удалось найти по этой теме (некоторые из них уже неработающие ссылки и их нельзя найти на archive.org):

https://developer.apple.com/library/mac/#qa/qa1398/_index.html http://www.wand.net.nz/~smr26/wordpress/2009/01/19/monotonic-time-in-mac-os-x/ http://www.meandmark.com/timing.pdf

Спасибо! Brett

Ответы на вопрос(3)

Ваш ответ на вопрос