Home > XModules >

必要なシステム

  • OS X 10.9 以降
    • macOS 10.14.6 で開発/テストをしています。

ダウンロード

Version 2.0 -- 2020-02-12

古いバージョン

  • macOS 10.13 - Mac OS X 10.4

依存モジュール

LapTime

LapTime は、AppleScript の実行時間を測定する AppleScript ライブラリです。スクリプトの性能の評価と改善に役立ちます。

AppleScript の実行時間の測定方法として、標準に装備されている curren date が使うことが考えられますが、時間分解能が 1 秒です。精度が悪すぎてスクリプトの性能評価には不向きです。LapTime は Cocoa の NSDate を使うことにより、ミリ秒オーダーの精度で時間を測ります。

一番簡単には、start_timerduration メソッド を使うことです。start_timer は 新しい LapTime のインスタスを生成します。その LapTime インスタンスの duragion メソッドで、start_timer からの経過時間を得ることができます。

スクリプトの各部分の実行の所要時間を測定するには、lap , lap_ メソッドと lap_times メソッドを使います。lap, lap_ は、start_timer で生成した LapTime インスタンスに呼ばれた時間を記録します。

lap はただ時間を記録するだけですが、lap_ はラベル付きで時間を記録します。ラベルは lap_times メソッドのログ出力で表示され、目的の記録を見つけるのに役立ちます。

ある処理の所要時間の正確な所要時間の評価のためには、lapaverage メソッドを使います。repeat 文で特定の処理を何回も実行します。実行の度に lap メソッドで経過時間を記録します。average メソッドで lap メソッド間の実行時間の平均を計算し出力します。

use LapTime : script "LapTime"

(*== Simple Usage ==*)
set tm to LapTime's start_timer()
delay 0.15
tm's duration() -- time from call of start_time
(*151.413917541504 [ms]*)

(*== Measure required times of parts of a script ==*)
set tm to LapTime's start_timer()
tm's lap() -- record a timming
delay 0.1
tm's lap:"Label 1" -- record a timming with a label
delay 0.2
tm's lap:"Label 2"
tm's lap_times() -- pretty print elapsed times between calls of lap()
(*[Lap Times]
0.099897384644 [ms]
Label 1 101.617097854614 [ms]
Label 2 201.478958129883 [ms]*)

(*== Take an average of lap times to evaluate precise required time ==*)
set tm to LapTime's start_timer()
repeat 100 times
delay 0.01
tm's lap()
end repeat
tm's average()
(*[Average Time of Laps]
11.234790086746 [ms]*)

更新履歴

  • 2.1 -- 2020-02-26
    • lap_ メソッドを追加。
  • 2.0 -- 2020-02-12
    • 初公開
    • macOS 10.14 からスクリプティング機能追加が使えなくなったので、 LapTime.osax と同等の機能をもつライブラリを作りました。