2009-12-01 93 views
2

我需要从运行在Mac OS X 10.6上的Python程序启动以来的启动时间(以纳秒为单位)。在Python中获取mach_absolute_time/UpTime()(以纳秒为单位)

我用下面的碳调用C代码得到这个:

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

是否有可能去使用碳或PyObjC模块在Python这些功能呢?我试过:

from Carbon import * 
UpTime() 

但得到了“NameError:name'UpTime'未定义”。

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

回答

2

CGEventTimestamp to NSDate答案之一的代码中,我发现 - [NSProcessInfo systemUptime],从10.6开始可用。这使我在十分之一秒,我可以倍增时间:

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

结果确实有纳秒的精度,并应更好地工作,我的需要。

更新:下面的方法也适用,并且兼容10.5以及:

from Quartz.QuartzCore import * 
CACurrentMediaTime() * 1e9 
相关问题