Holen mach_absolute_time / UpTime () in Nanosekunden in Python
-
22-07-2019 - |
Frage
Ich brauche die verstrichene Zeit seit dem Start für den Zugriff auf in Nanosekunden von einem Python-Programm läuft auf Mac OS X 10.6.
Ich verwende die folgende Kohlenstoff dies ruft in C-Code zu erhalten:
AbsoluteTime uptimeAbs = AbsoluteToNanoseconds(UpTime());
uint64_t elapsedTime = ((uint64_t)uptimeAbs.hi << 32) + uptimeAbs.lo;
Ist es möglich, diese Funktionen in Python zu bekommen, Kohlenstoff oder PyObjC-Modul? Ich habe versucht:
from Carbon import *
UpTime()
aber bekam. "Nameerror: name 'UpTime' nicht definiert ist"
Wie kann ich den Zugriff auf diesen Wert von Python auf OS X bekommen?
Lösung
Im Code in eine der Antworten auf CGEventTimestamp zu NSDate , fand ich - [NSProcessInfo SystemUpTime ], in 10.6 beginnen. Das gibt mir die Zeit in Dezimalsekunden, die ich multiplizieren kann:
from Foundation import *
NSProcessInfo.processInfo().systemUptime() * 1e9
Das Ergebnis Nanosekunde Präzision hat, und sollte gut für meine Bedürfnisse arbeiten.
Update: die folgende Methode funktioniert auch, und ist kompatibel mit 10.5 als auch:
from Quartz.QuartzCore import *
CACurrentMediaTime() * 1e9