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
Спасибо! Бретт