【发布时间】:2011-09-15 15:44:39
【问题描述】:
根据Android Developer Reference 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没有考虑睡眠,那么我应该使用什么来获得包括睡眠在内的系统正常运行时间?什么是深度睡眠? CPU 空闲是否称为深度睡眠?
Linux中unspecified point的值是多少?您能否在代码中指出这个时钟的开始位置?
【问题讨论】:
标签: android linux time linux-kernel