0

Pythonを使用して、さまざまなWindowsアプリケーション(1つはAcrobat Reader X)がファイルをロードするのにかかる時間をテストしたいと思います。

Pythonコード内でファイルを開いたり閉じたりする際の読み込み時間をテストできます。

Pythonを使用してサブプロセスを開始し、その方法でWindowsアプリケーションを開く方法は知っていますが、Pythonがサブプロセスを呼び出してスクリプトを続行するため、タイマーが常に0になるため、このコンテキストでは役に立ちません。

Windowsアプリケーションを開き、その状態(ファイルがロードされている)をテストし、プロセス全体の時間を計測するために使用できる別の方法はありますか?

4

1 に答える 1

1

さまざまなセマンティクスを持つさまざまなタイミング関数があります。 エポックからの秒数を返しtime.clock()ながら、現在のプロセスで経過した時間を返します。time.time()これは、他のプロセスの時間を計りたい場合はtime.time()、ではなく使用する必要があることを意味しますtime.clock()

例:

>>> import time
>>> import subprocess
>>> def time_time():
...     t1 = time.time()
...     subprocess.call(['python', 'a.py'])
...     return time.time() - t1
... 
>>> def time_clock():
...     t1 = time.clock()
...     subprocess.call(['python', 'a.py'])
...     return time.clock() - t1
... 
>>> time_time()
0.12334513664245605
>>> time_clock()
0.0

おそらくより良い解決策(*)が存在し、 python3.3のPEP418を考慮に入れてください。

profile/cProfileまた、またはhotshotモジュールを使用してコードをプロファイリングする方がよいことも指摘しておきます。彼らはあなたにタイミングについてのより多くの情報を与えます。

(*)time.time()システムの管理者がコンピュータの時刻を変更すると影響を受けるため、time.time() - time.time()ゼロ以上の値が返される保証はありません。また、正の値であっても、時刻が正しいかどうかはわかりません。正しい。通常の状況では、プロファイリング中に管理者が時間を変更しない場合でも、これは発生しません。

于 2012-09-04T11:15:48.177 に答える