Получить mach_absolute_time / UpTime () в наносекундах в Python - PullRequest
2 голосов
/ 01 декабря 2009

Мне нужно получить доступ к истекшему времени с момента запуска в наносекундах из программы на Python, работающей в Mac OS X 10.6.

Я использую следующие звонки Carbon, чтобы получить это в коде C:

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

Можно ли добраться до этих функций в Python с помощью модуля Carbon или PyObjC? Я попробовал:

from Carbon import *
UpTime()

но получил "NameError: имя 'UpTime' не определено".

Как я могу получить доступ к этому значению из Python на OS X?

1 Ответ

2 голосов
/ 01 декабря 2009

В коде одного из ответов на CGEventTimestamp to NSDate я обнаружил - [NSProcessInfo systemUptime], доступный начиная с 10.6. Это дает мне время в десятичных секундах, которое я могу умножить:

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

Результат имеет наносекундную точность и должен хорошо работать для моих нужд.

Обновление: также работает следующий метод и совместим с 10.5:

from Quartz.QuartzCore import *
CACurrentMediaTime() * 1e9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...