みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
GASでconsoleクラスを使ってApps Scriptダッシュボードにログを出力する方法をお伝えしています。
前回の記事はこちらです。
consoleクラスによるApps Scriptダッシュボードへのログ出力の方法についてお伝えしました。
さて、consoleクラスには実行時間を測定するためのメソッドも用意されています。
ということで、今回はGASのconsoleクラスのメソッドで実行時間をログ出力する方法です。
では、行ってみましょう!
GASで実行時間を測定するには
GASで実行時間を測定したいとき、V8ランタイム環境に切り替えをしないのであれば、「実行トランスクリプト」を使うことができます。
例えば、以下のような一定時間(3000ミリ秒)を経過させるだけの関数myFunctionを作ってみました。
function myFunction(){ Utilities.sleep(3000); }
これをスクリプトエディタ上で実行して、スクリプトエディタの「表示」> 「実行トランスクリプト」を選択します。
このメニューはV8ランタイムへの切り替えをしなければ表示されます。
すると、以下のように実行時間を確認することができます。
合計ランタイム 3.003秒
ただ、モダンな構文が使えるV8ランタイム環境を使おうとするのであれば、この方法は使うことができません。
そのようなときは、別の方法としてconsoleクラスのメソッドを使うことができます。
consoleクラスで実行時間をログ出力する
consoleクラスのtimeメソッド、timeEndメソッドを使用すると、関数の実行時間について測定しログ出力することができます。
timeメソッドは、新たなタイマーをスタートします。
ラベルで指定した文字列が、スタートしたタイマーのタイマー名になります。
それで、タイマーを止めてタイマーの時間をログ出力するには、timeEndメソッドを使用します。
ラベルには、すでにスタートしているストップしたいタイマー名を指定します。
なお、これらの方法によるログ出力は、スクリプトエディタのログだけでなく、Apps Scriptダッシュボードでも確認することができます。
実行時間のログ出力を確認する
では、これらのconsoleクラスのメソッドを使って、前述の関数myFunctionの実行時間をログ出力してみましょう。
以下のようなコードになります。
function logTime() { const label = 'myFunction() time' console.time(label); myFunction(); console.timeEnd(label); }
これを実行して、まずはスクリプトエディタのログを確認してみましょう。
では、続いて、Apps Scriptダッシュボードを確認してみましょう。
このように、きちんとタイマー名と実行時間が出力されていることが確認できます。
まとめ
以上、GASでconsoleクラスを使ってApps Scriptダッシュボードにログを出力する方法をお伝えしました。
実行時間については、これらのメソッドで自由なポイントを測定できるようになりました。
また、Apps Scriptダッシュボードでは過去の記録が残りますし、トリガーなどの実行結果もとることができます。
便利になりましたね。
console.logについての便利な使い方があれば紹介しますね。
どうぞお楽しみに!