天地有情

[elapsedtime][timeit] プログラム実行時間の計測コマンド

プログラム実行時間の計測コマンド

■ コマンド

Windows におけるプログラムの実行時間を計測するコマンドを調べたところ
次の2つがありました.

elapsedtime.exe
     このコマンドはWindowsに標準搭載されています.

timeit.exe     このコマンドは WindowsXP には標準搭載されているようです.
     必要な場合には『Windows Server 2003のリソースキット』に含まれており,
     以下からダウンロードします.
     (http://www.microsoft.com/en-us/download/details.aspx?id=17657)
 
 
■ 使い方

● elapsedtime.exe

     texworks というプログラムが立ち上がるまでの経過時間を調べてみます.
     コマンドラインから次のように入力します.
 
     C:\Users\xxx\Desktop> elapsedtime texworks
 
--------------------------------------------
     Elapsed time = 450 milliseconds
--------------------------------------------
 
 
● timeit.exe

     上記と同様に texworks というプログラムについて実行時間などについて調べてみます.
     コマンドラインから次のように入力します.
 
     C:\Users\xxx\Desktop> timeit texworks

プログラムが終了すると、次のように実行したプログラムに関する統計値が表示されます.

--------------------------------------------
Version Number: Windows NT 6.1 (Build 7601)    ………OSバージョン
Exit Time: 12:04 am, Monday, February 24 2014  ……終了時間
Elapsed Time: 0:00:00.405        …………………開始から終了までの経過時間
Process Time: 0:00:00.358        …………………処理時間
System Calls: 8255            …………………システム・コールの回数
Context Switches: 1417            …………………コンテキスト切り替えの回数
Page Faults: 3141            …………………ページ・フォルトの回数
Bytes Read: 1378451           …………………ディスクからの読み出しバイト数
Bytes Written: 0              …………………ディスクへの書き込みバイト数
Bytes Other: 9000            …………………そのほかのデータ転送バイト数
--------------------------------------------

この中で大切なのは「Elapsed Time」と「Process Time」です.

「Elapsed Time(経過時間)」は,プログラムを起動してから終了するまでの実際の経過時間です.
この例では 405msec かかっていることがわかります.

「Process Time(処理時間)」は,プログラムの実際の処理時間です.つまり実際にCPUを占有して,
動作していた時間の総計を表わします.この例では 358msec かかっていることがわかります.

あと,4回実行して,合計5回の平均の実行時間を求めるには次のようにします.

     C:\Users\xxx\Desktop> timeit texworks …2回目
     C:\Users\xxx\Desktop> timeit texworks …3回目
     C:\Users\xxx\Desktop> timeit texworks …4回目
     C:\Users\xxx\Desktop> timeit texworks …5回目
     C:\Users\xxx\Desktop> timeit -k texworks…指定したキーのデータだけを表示させる(-k option要)

--------------------------------------------
Average for texworks key over 5 runs …………5回の実行における平均値

Version Number: Windows NT 6.1 (Build 7601)
Exit Time: 9:00 am, Monday, January 1 1601
Elapsed Time: 0:00:00.408 …………………平均実行時間.以下はすべて平均値
Process Time: 0:00:00.371
System Calls: 8838
Context Switches: 1489
Page Faults: 3192
Bytes Read: 1379189
Bytes Written: 35123
Bytes Other: 11600
--------------------------------------------

このtimeit.exeコマンドでは,実行した結果をログ・ファイルに記録し,その平均値を計算して表示するとい
機能を持っています.timeit.exeを実行すると,その結果が(デフォルトでは)カレント・ディレクトリにあ
timeit.datというファイルに記録されます.そして何もパラメータを付けずにtimeit.exeを実行すると,現在
timeit.datファイルに記録されているデータに基づいて,プログラムごとの平均値が表示されます.
また、キー名を指定すれば,そのキーに属するデータだけを表示することもできるます(「キー」とは実行し
プログラムの名称のこと).詳しくは timeit /? で表示されるヘルプ・メッセージを参照してください.
 
(参考文献:timeitコマンドでアプリケーションの実行時間を測定する)
http://www.atmarkit.co.jp/fwin2k/win2ktips/422timecmd/timecmd.html


(追)texworks などのアプリを実行した後,終了させるには
   timeit cmd /c "texworks"
   のように cmd /c を付加し"texworks"のように,実行ファイルを("...")ダブルコーテーションで囲みます.
   (詳細は cmd /? で表示されるヘルプ・メッセージを参照してください)

== おわり ==
スポンサーサイト
  1. 2014/02/24(月) 13:35:19|
  2. 便利ツール
  3. | トラックバック:0
  4. | コメント:0
<<[Windows][diff][patch] Windows用の diff & patch コマンドでのパッチの適用 ~備忘録~ | ホーム | [LualLaTeX] LuaLaTeX ソースファイルに Luaスクリプトを取り込む(2) >>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://konoyonohana.blog.fc2.com/tb.php/66-ad647a29
この記事にトラックバックする(FC2ブログユーザー)