Home > Graveyard >

必要なシステム

  • Mac OS X 10.4 or later
    • Mac OS X 10.5.8, 10.8.5 で開発/テストしています。

ダウンロード

Version 1.0.3 -- 2016-02-17

LapTime

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 エディタでログを表示しないようにするのが良いでしょう。ログを表示させるためのパフォーマンスのロスは無視できないので、計測時間に大きな影響を与えます。

Memory (2020-02-12)

macOS 10.14 から System Integrity Protection(SIP)によって、サードパーティ製のスクリプティング機能追加がブロックされるようなりました。そこで、LapTime.scptd を開発しました。

更新履歴

  • 1.0.3 -- 2016-02-17
    • ガーベージコレクションのサポートを有効にしてコンパイルした。
  • 1.0.2 -- 2010-12-17
    • Mac OS X 10.4 でプロセスが終了する時にエラーメッセージが表示される不具合を修正。
  • 1.0.1 -- 2010-12-12
    • Mac OS X 10.4 をサポート。
  • 1.0 -- 2010-10-19
    • 初公開