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