特定のアクション処理の時間を計測する
アクションリストの中の特定のアクションの実行にかかる時間を計測するにはタイムスタンプ付きでログを出力するか、現在時刻を変数に保持しておき差分を計算します。
目次
「ファイルに記録 :ファイルに記録」アクションを使う方法
計測するアクションの前後に「ファイルに記録 : ファイルに記録」アクションを設置します。
「ファイルに記録 : ファイルに記録」(Log to file : Log to file) アクションの使い方 あらゆるテキストをファイルに記録します。
入力:
|
解法:
- 計測するアクションの前後に「ファイルに記録 : ファイルに記録」アクションをそれぞれ配置します。(以後、それぞれを「直前の記録アクション」「直後の記録アクション」と呼びます。)
- アクションの詳細パネルで以下を指定します。
- 「ファイルパス」にはログを記録するローカルパスを指定します。「参照」ボタンを使って指定しようとすると、すでに存在するファイルしか指定できませんが、後でフィールド上で名前変更できます。(ここではC:\User\XXX\Desktop\log.txt を指定するものとします)
- 「テキストをログへ入力」は「直前の記録アクション」には「開始」、「直後の記録アクション」には「終了」と設定します。
- 「タイムスタンプを追加」はONにします。
- 保存して実行します。
結果:
log.txtを開くと以下のような内容になっています。このタイムスタンプの差分を計算すればかかっている時間が算出されます。
(2020/08/20 18:25:56) 開始
(2020/08/20 18:25:59) 終了
現在時刻を変数に保持して両者の差分を計算する方法
計測するアクションの前後でシステム変数 $System:Date$ の内容を保持しておき、差分を計算することで 処理時間を計測します。ただ、日時の差分を計算する関数が標準では用意されていないので、JavaScriptかBot Storeから追加パッケージを使って行います。
JavaScriptで計算
JavaScriptの剰余演算子やslice関数をうまく使って時、分、秒の桁の計算を行います。
解法:
- 日時型変数の$dtStartTime$、$dtEndTime$およびリスト型変数 $lDates$ をあらかじめ作成しておきます。
- 計測するアクションの前に以下のアクションリストを挿入します。
- 計測するアクションの後に以下のアクションリストを挿入します。
- アクションリストの最後に以下のアクションリストを挿入します。
- 「JavaScript: 開く」アクションのアクションの詳細パネルで「手動インポート」を選択、以下のスクリプトを記載します。
function dateDiffToString(dates) {
//リストから日時を得る
var date0 = new Date(dates[0]);
var date1 = new Date(dates[1]);//二つの日時の差分
diff = Math.abs(date0 - date1);//剰余演算子で時間差を得る
ms = diff % 1000;
diff = (diff - ms) / 1000
ss = diff % 60;
ss = ("0" + ss).slice(-2);
diff = (diff - ss) / 60
mm = diff % 60;
mm = ("0"+mm).slice(-2)
diff = (diff - mm) / 60
hh = diff % 24;
hh = ("0"+hh).slice(-2)return hh + ":" + mm + ":" + ss;
} - 「JavaScript: JavaScriptを実行」アクションのアクションの詳細パネルで「実行する関数の名前を入力します」に上記の関数名「dateDiffToString」を入力、「関数への引数」にはあらかじめ作成しておいたリスト型変数 $lDates$ を指定、「出力を変数に代入」には $prompt-assignment$ - 文字列を指定します。
- 「メッセージボックス : メッセージボックス」アクションを配置してアクションの詳細パネルの「表示するメッセージを入力します」に $prompt-assignment$ を指定します。
- 保存して実行します。
結果:
「00:00:03」のように表示されます。この表示なら3秒間です。
「日時ユーティリティ」パッケージで計算
※商用版Enterprise版のみの機能でCommunity Editionでは利用不可。
Bot Store上で配布されている「日時ユーティリティ」パッケージをダウンロードしてインストールしておくと、日時の差分を簡単に計算することができます。
「Datetime Utilities : Difference between dates」アクションの使い方 2つの日時の差分を計算します。
入力:
出力:
|
解法:
- 日時型変数の$dtStartTime$、$dtEndTime$および数字型変数 $nDiffTime$をあらかじめ作成しておきます。
- 計測するアクションの前に「日時 : 代入」アクションを挿入します。
- アクションの詳細パネルで以下を指定します。
- 「ソースの日時変数/値を選択」で「変数」を選択。
- 変数に $System:Date$ - 日時 を選択。
- 「ターゲットの日時変数を選択」で$dtStartTime$ - 日時を選択。
- 計測するアクションの後に「日時 : 代入」アクションを挿入します。
- アクションの詳細パネルで以下を指定します。
- 「ソースの日時変数/値を選択」で「変数」を選択。
- 変数に $System:Date$ - 日時 を選択。
- 「ターゲットの日時変数を選択」で$dtEndTime$ - 日時を選択。
- アクションリストの最後に「Datetime Utilities : Difference between dates」アクションを挿入します。
- アクションの詳細パネルで以下を指定します。
- 「The fist date」で「変数」を選択、$dtStartTime$を指定。
- 「The second date」で「変数」を選択、$dtEndTime$を指定。
- 「Time unit」で「Second」を選択。
- 「The difference between two dates」で $nDiffTime$ - 数字を選択。
- 「メッセージボックス : メッセージボックス」アクションを配置してアクションの詳細パネルの「表示するメッセージを入力します」に $nDiffTime.Number:toString$ を指定します。
- 保存して実行します。
結果:
「3」のように表示されます。この表示なら3秒間です。
$nDiffTime.Number:toString$の書式は「型キャスト」を使っています。詳しくは『四則演算や変数の型変換を簡単に行う』を参照してください。