Pergunta

Eu preciso acessar o tempo decorrido desde a inicialização em nanosegundos de um programa Python rodando em Mac OS X 10.6.

Eu uso o seguinte carbono chama para obter isso no código C:

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

É possível chegar a estas funções em Python utilizando um módulo de carbono ou PyObjC? Eu tentei:

from Carbon import *
UpTime()

mas tem. "NameError: nome 'UpTime' não está definido"

Como posso obter acesso a este valor a partir de Python no Mac OS X?

Foi útil?

Solução

Dentro do código em uma das respostas no CGEventTimestamp para NSDate , encontrei - [NSProcessInfo SystemUpTime ], disponível a partir de 10,6. Isso me dá o tempo em segundos decimais, o que eu posso multiplicar:

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

O resultado tem precisão de nanossegundos, e deve funcionar muito bem para minhas necessidades.

Update: o seguinte método também funciona, e é compatível com 10,5 assim:

from Quartz.QuartzCore import *
CACurrentMediaTime() * 1e9
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top