使用CLOCK_MONOTONIC的Android(Linux)正常运行时间

|| 根据Android开发者参考,“ 0”返回自启动以来的毫秒数,不计算深度睡眠所花费的时间。我检查了执行  我的代码中的“ 0”,大致是这样的-
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
包括睡眠时间,how0 how为何不考虑呢?如果我的理解是错误的,并且“ 3”没有考虑睡眠,那么我应该使用什么来使系统正常运行(包括睡眠)? 什么是深度睡眠? CPU空闲是否称为深度睡眠? Linux中未指定点的值是什么?您能否在代码中指出此时钟的起始位置?     
已邀请:
         系统挂起时,CLOCK_MONOTONIC停止。有人认为这是一个错误,随后便有了用于添加CLOCK_BOOTTIME时钟的补丁程序:https://lwn.net/Articles/428176/。我不知道这些补丁是否已经包含在主线内核中。 CLOCK_BOOTTIME在ndk-9c中-仅用了2.5年;)– Wojciech 挂起,我想。 IIRC在启动之前有固定的时间。如果您深入内核源代码,则会找到确切的值。再说一遍,关于它的不确定性的全部要点是它可以随时更改,因此依赖它对我来说似乎是不明智的。     

要回复问题请先登录注册