0

Python から呼び出している外部プロセスの実行時間を計ろうとしています。私はそれを計りたかったのですが、ここで time.clock() が適していることがわかりました。しかし、私は time.time() で非常に一貫性のない結果を見ていました。time.sleep を使用して外部プロセスをモックする簡単な例を設定します。

def t1(): 
  t0 = time.clock()
  time.sleep(2.5)
  return time.clock() - t0

def test_t1():
  timings = []
  for i in range(100):
    timings.append(t1())
  print sum(timings)/len(timings)

t2/test_t2 も同様に定義されていますが、time.clock() の代わりに time.time() を使用します。

>>>test_t1()
5.884e-05
>>>test_t2()
2.49959212065

ここで time.clock が間違っているのはなぜでしょうか?

編集: このテストは MacOSX で実行しており、デプロイされたコードは Ubuntu で実行されることに注意してください。

4

2 に答える 2

1

time.clock()コードで費やされた計算時間を返します。CPU はほとんど必要ないためsleep、それほど時間はかかりませんtime.clock

time.time()実際の実際の時差を取得するため、睡眠をより簡単に認識できます。

于 2013-09-20T21:56:22.773 に答える
0

time.clock()おそらく正確ですが、壁時計の時間を測定していません。あなたのボックスでは、おそらくCPU時間を測定しています。テスト プログラムはほぼすべての時間をスリープ状態 ( ) に費やしているため、time.sleep(2.5)蓄積される CPU 時間はごくわずかです。 time.time()ただし、壁時計の時間を測定しています。 詳しくはドキュメントを読んでください ;-)

于 2013-09-20T21:59:43.373 に答える