Согласно Справочнику разработчика Android uptimeMillis ()
возвращает количество миллисекунд с момента загрузки, не считая времени, потраченного на глубокое сон . Я проверил реализацию
uptimeMillis ()
в моем коде, и это примерно так -
struct timespec t;
t.tv_sec = t.tv_nsec = 0;
clock_gettime(CLOCK_MONOTONIC, &t);
return (int64_t)(t.tv_sec)*1000000000LL + t.tv_nsec;
Насколько я знаю, CLOCK_MONOTONIC
отсчитывается от некоторой неуказанной точки линейно, включая время сна.
Вот мои сомнения -
Если CLOCK_MONOTONIC
включает время сна, почему uptimeMillis ()
не принимает его во внимание? Если я понимаю неверно и CLOCK_MONOTONIC
не учитывает сон, то что мне следует использовать, чтобы получить время безотказной работы системы, включая сон?
Что такое глубокий сон? Считается ли бездействие процессора глубоким сном?
Какое значение неопределенной точки в Linux? Не могли бы вы указать в коде, где запускаются эти часы?