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?

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top