Получите точное время загрузки системы на iOS/OS X

Есть ли API для получения NSDateили NSTimeInterval, представляющих время загрузки системы? Некоторые API, такие как [NSProcessInfo systemUptime]и Core Motion, возвращают время с момента загрузки. Мне нужно точно сопоставить эти значения времени безотказной работы с NSDateс, примерно с точностью до миллисекунды.

Время с момента загрузки якобы обеспечивает большую точность, но легко увидеть, что NSDateуже обеспечивает точность порядка 100 наносекунд, а все, что меньше микросекунды, просто измеряет задержку прерывания и дрожание часов печатной платы.

Очевидная вещь — вычесть время безотказной работы из текущего времени [NSDate date]. Но это предполагает, что время между двумя системными вызовами не меняется, что, ну, сложно сделать. Более того, если поток прерывается между вызовами, все сбрасывается. Обходной путь состоит в том, чтобы повторить процесс несколько раз и использовать наименьший результат, но гадость.

NSDateдолжен иметь основное смещение, которое он использует для создания объектов с текущим временем из времени безотказной работы системы, неужели нет никакого способа получить его?

9
задан Potatoswatter 1 July 2012 в 14:46
поделиться