天地有情

[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

[LualLaTeX] LuaLaTeX ソースファイルに Luaスクリプトを取り込む(2)

LuaLaTeX ソースファイルに Luaスクリプトを取り込む(2

本編は『LuaLaTeX ソースファイルに Luaスクリプトを取り込む』の続編です.
( http://konoyonohana.blog.fc2.com/blog-entry-64.html )

LuaLaTeX ソースファイルに Luaスクリプトを取り込むには,
どうすれば良いでしょうか.今回は『表』のサンプルで確認してみようと思います.

● サンプル

  ソースファイル foo.tex
======================================================
01: \documentclass{ltjsarticle}
02: \usepackage{luacode}
03: 
04: \begin{luacode*}
05: function mul()
06:  num=7
07:  for i=1,num do
08:  for j=1,num do
09:  ixj='$'..i..'\\times'..j..'='..i*j..'$';
10:  tex.print(ixj)
11:  if(j<num) then tex.sprint('&') else tex.sprint('\\\\') end
12:  end
13:  end
14: end
15: \end{luacode*}
16: 
17: \newcommand{\multable}{\luadirect{mul()}}
18: 
19: \begin{document}
20: 九九のうち,『7の段』までを表にします.
21: 
22: \begin{center}
23: \begin{tabular}{*{7}{l}} %{lllllll}と同じ
24:  \multable
25: \end{tabular}
26: \end{center}
27: \end{document}
======================================================

【説明】
01: クラスファイルは ltjsarticle を使います.ltjarticle でも構いません.
02: luacode パッケージの登録が必要です.
04と15: luacode*環境.この環境内に Luaスクリプトを記述します.
05~14: 関数 mul() を定義.内容は for 文による ”九九”です.(7の段まで)
10: ”九九”演算の結果を表示します.
17: LuaTeX側でLuaスクリプトとのインタフェースをとるためのコマンド\multable を定義します.
   (\luadirect{..}の代わりに,\luaexec{..}でも構いません.)
19~27: 本文になります.
23~25: ”九九”演算の表を作成します.

● コンパイル

  luajitlatex foo.tex
  または
  lualatex foo.tex

● 結果

  foo.pdfの内容

99.png


== おわり ==



  1. 2014/02/22(土) 14:41:00|
  2. lualatex
  3. | トラックバック:0
  4. | コメント:0

[LuaLaTeX] LuaLaTeX ソースファイルに Luaスクリプトを取り込む

LuaLaTeX ソースファイルに Luaスクリプトを取り込む

Luaスクリプトの文法や特徴などは「検索」すれば,色々な
情報が得られますので,ここでは割愛させて頂きます.

さて,LuaLaTeX ソースファイルに Luaスクリプトを取り込むには,
どうすれば良いでしょうか.サンプルで確認してみようと思います.

● サンプル

  ソースファイル foo.tex
======================================================
01:  \documentclass{ltjsarticle}
02:  \usepackage{luacode}
03:  \begin{luacode*}
04:  function kasan(x)
05:  i=0 ; total=0
06:  while(i < x) do
07:  i=i+1 ; total=total+i
08:  end
09:  tex.print(total)
10:  end
11:  \end{luacode*}
12: 
13:  \newcommand\accumulate[1]{\luadirect{kasan(#1)}}
14: 
15:  \begin{document}
16:  (a) $1+2+3+\ldots + 98+99+100$ の
17:  総計は \accumulate{100} です.
18: 
19:  (b) $1+2+3+\ldots + 8+9+10$ の
20:  総計は \accumulate{10} です.
21:  \end{document}
======================================================

【説明】
01: クラスファイルは ltjsarticle を使います.ltjarticle でも構いません.
02: luacode パッケージの登録が必要です.
03と11: luacode*環境.この環境内に Luaスクリプトを記述します.
04~08: 関数 kasan(x) を定義.内容は while~end 文による ”累加算”です.
09: 累加算された結果を表示します.
13: LuaTeX側でLuaスクリプトとのインタフェースをとるためのコマンド\accumulateを定義します.
   (定義中の\luadirect{..}の代わりに,\luaexec{..}でも構いません.)
15~21: 本文になります.
16: \accumulate{100}の累加算を行います.---> 答えは 5050 になる.
19: \accumulate{10}の累加算を行います. --> 答えは 55 になる.

● コンパイル

  luajitlatex foo.tex

あるいは

  lualatex foo.tex

● 結果

  foo.pdfの内容

luacode.png


== おわり ==



  1. 2014/02/21(金) 14:41:47|
  2. lualatex
  3. | トラックバック:0
  4. | コメント:0

lualatex用の日本語クラスファイル

lualatex用の日本語クラスファイル


lualatex用の日本語クラスファイルを調べてみたら,次の3種類が見当たりました.

(1)ltjsclasses(ltjsbook,ltjsarticle)

*マニュアル:ltjsclasses.pdf
*jsclassesをベースにしています.
*クラスオプション[report]を指定すると,ltjsreportに対応します.
*文字サイズ:10pt,11pt,12pt のほかに,8pt,9pt,14pt,17pt,21pt,25pt,30pt,36pt,43pt,12Q,14Q
*サンプル
-------------------------------------
\documentclass{ltjsbook}
\usepackage[ipa]{luatexja-preset}
\begin{document}
\chapter{吾輩は猫}
\section{名前はまだ無い}
吾輩は猫である.名前はまだ無い.

どこで生れたかとんと見当がつかぬ.
何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している.
吾輩はここで始めて人間というものを見た.
しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ.
この書生というのは時々我々を捕えて煮て食うという話である.
しかしその当時は何という考もなかったから別段恐しいとも思わなかった.
ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあった
ばかりである.
\end{document}
-------------------------------------

コンパイル: luajitlatex foo1.tex

結果:

ltjsbook.png


(2)ltjclasses(ltjbook,ltjreport,ltjarticle)

*マニュアル:ltjclasses.pdf
*jclassesをベースにしています.
*文字サイズ:10pt,11pt,12pt
*サンプル
-------------------------------------
\documentclass{ltjbook}
\usepackage[ipa]{luatexja-preset}
\begin{document}
\chapter{吾輩は猫}
\section{名前はまだ無い}
吾輩は猫である.名前はまだ無い.

どこで生れたかとんと見当がつかぬ.
何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している.
吾輩はここで始めて人間というものを見た.
しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ.
この書生というのは時々我々を捕えて煮て食うという話である.
しかしその当時は何という考もなかったから別段恐しいとも思わなかった.
ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあった
ばかりである
\end{document}
-------------------------------------

コンパイル: luajitlatex foo2.tex

結果:

ltjbook.png


(3)bxjscls(bxjsreport,bxjsarticle)

*マニュアル:bxjsclasses.pdf
*jsclassesをベースにしています.
*bxjsbookは現時点では未サポートです.
*文字サイズ:10pt,11pt,12pt のほかに,8pt,9pt,14pt,17pt,21pt,25pt,30pt,36pt,43pt,12Q,14Q
*サンプル
-------------------------------------
\documentclass[lualatex]{bxjsreport}
\usepackage{luatexja}
\usepackage[ipa]{luatexja-preset}
\begin{document}
\chapter{吾輩は猫}
\section{名前はまだ無い}
吾輩は猫である.名前はまだ無い.

どこで生れたかとんと見当がつかぬ.
何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している.
吾輩はここで始めて人間というものを見た.
しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ.
この書生というのは時々我々を捕えて煮て食うという話である.
しかしその当時は何という考もなかったから別段恐しいとも思わなかった.
ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあった
ばかりである.
\end{document}
-------------------------------------

コンパイル: luajitlatex foo3.tex

結果:

bxjsreport.png


  1. 2014/02/15(土) 08:28:52|
  2. lualatex
  3. | トラックバック:0
  4. | コメント:0