2010-10-19T10:06:39+09:00

LapTime 1.0

AppleScript の実行時間を測定する為のスクリプティング機能追加です。スクリプトの性能評価およびチューンナップに利用できます。

AppleScript の標準の機能で current date コマンドで時間を取得できますが、時間分解能が1秒なので、スクリプトの実行時間の測定には分解能が不足しています。

LapTime.osax はミリ秒程度のオーダーで実行時間の測定を行えます。本当はマイクロ秒のオーダーで時間を取得しているのですが、スクリプティング機能追加のコマンド実行に費やす時間の為に、1 msec 程度が最小分解能になりそうです。

LapTime.osax は次のように、LapTime.osax のコマンドからコマンドまでの時間を測定します。一番シンプルな使い方は、start timer コマンドで、timer オブジェクトを生成し、stop timer コマンドで、start timer からの時間を取得します。時間の単位はミリ秒になります。

set tm to start timer
(* beginning of tasks *)
beep
delay 0.5
(* end of tasks*)
stop timer tm
-- result : 814.49609375 [msec]

途中経過の時間を測定したい場合は、lap time コマンドを用います。time records of で lap time コマンド間の経過時間を取得できます。

set tm to start timer
(* beginning of tasks *)
beep
lap time tm
delay 0.5
lap time tm
delay 0.01
(* end of tasks*)
time records of tm
(* result :
lap times:
{3.222900390625, 501.865966796875, 10.423095703125},
total times:515.511962890625
*)

なお、スクリプトの性能の測定の際にはスクリプトエディタ/AppleScript エディタでログを表示しないようにするのが良いでしょう。ログを表示させるためのパフォーマンスのロスは無視できないので、計測時間に大きな影響を与えます。