2

Mac OS X 10.6で実行されているPythonプログラムから、起動からの経過時間にナノ秒単位でアクセスする必要があります。

これをCコードで取得するには、次のCarbon呼び出しを使用します。

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

CarbonまたはPyObjCモジュールを使用してPythonでこれらの関数にアクセスすることは可能ですか?私は試した:

from Carbon import *
UpTime()

しかし、「NameError:name'UpTime'isnotdefined」を取得しました。

OS XのPythonからこの値にアクセスするにはどうすればよいですか?

4

1 に答える 1

2

NSDateに対するCGEventTimestampの回答の1つにあるコード内で、10.6以降で利用可能な-[NSProcessInfosystemUptime]が見つかりました。これにより、10進数の秒単位の時間が得られ、これを乗算できます。

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

結果はナノ秒の精度であり、私のニーズにうまく機能するはずです。

更新:次の方法も機能し、10.5とも互換性があります。

from Quartz.QuartzCore import *
CACurrentMediaTime() * 1e9
于 2009-12-01T07:00:37.833 に答える