2

我需要从在 Mac OS X 10.6 上运行的 Python 程序访问自启动以来经过的时间(以纳秒为单位)。

我使用以下 Carbon 调用在 C 代码中获取此信息:

AbsoluteTime uptimeAbs = AbsoluteToNanoseconds(UpTime());
uint64_t elapsedTime = ((uint64_t)uptimeAbs.hi << 32) + uptimeAbs.lo;

是否可以使用 Carbon 或 PyObjC 模块在 Python 中使用这些函数?我试过了:

from Carbon import *
UpTime()

但得到“NameError:名称'UpTime'未定义”。

如何在 OS X 上从 Python 访问此值?

4

1 回答 1

2

CGEventTimestamp 到 NSDate的答案之一的代码中,我发现 -[NSProcessInfo systemUptime],从 10.6 开始可用。这给了我以十进制秒为单位的时间,我可以乘以:

from Foundation import *
NSProcessInfo.processInfo().systemUptime() * 1e9

结果确实具有纳秒精度,并且应该可以很好地满足我的需求。

更新:以下方法也有效,并且也与 10.5 兼容:

from Quartz.QuartzCore import *
CACurrentMediaTime() * 1e9
于 2009-12-01T07:00:37.833 回答