2

Windowsのtime.clock()は、最初に呼び出されたときにタイマーを開始し、その後の最初の呼び出しからの経過時間を返します。時計を再開する唯一の方法は、新しいプロセスを開始することだと読みました。

スレッドを開始して強制終了すると、time.clock()も再起動することになっていますか?現在は機能していないようです。そうでない場合、実行可能ファイル全体を再起動する唯一の解決策ですか?

4

2 に答える 2

4

スレッドはプロセスではないので、違います。(マイナーな点として、Pythonでスレッドを強制終了することはできず、終了するように要求することしかできません。他の手段でスレッドを強制終了すると、そのような手段が存在する場合でも、Pythonが悪い状態になる可能性があります。)

問題は、なぜタイマーをリセットしたいのか、そしてなぜを使用しているのかということですtime.clock()。適切ではないほど高い粒度で2つのポイント間の経過時間を気にする場合time.time()は、2番目のポイントから最初のポイントを差し引くだけです。リセットは必要ありません。とは対照的に、すべてのプラットフォームで同じように機能するためtime.time()、粒度のわずかな違いを本当に気にしない限り、使用することをお勧めします。time.time()time.clock()

于 2010-04-19T19:55:10.343 に答える
0

クロックが必要な場合はスレッドを離しておくと、2番目のクロックのフロートが大きいという理由だけで(ほとんど知覚できない違い)、精度が高いクロックをリセットできます。time.clock()これtime.time()により、コードの実行中に経過した時間を測定できます。これを試すことができます:

t0 = time.clock()
... do something
print('Running time:', time.clock()-t0)

Yoは、このための関数装飾を試すこともできます。

def duration(code):
    def f(*args):
        t0 = time.clock()
        bar = code(*args)
        print('Running time:', time.clock()-t0)
        return bar
    return f

この後、デコレータを使用して関数を定義できます。

@duration
def myFun(*args):
    ... do something

または、デコレータを使用して関数を呼び出すだけです。

duration(myFun)(*args)
于 2013-04-20T14:28:38.707 に答える