LoginSignup
1
1

More than 5 years have passed since last update.

Google Apps Scriptで処理時間をLogする関数

Posted at

はじめに

Google Apps Script(GAS)で処理時間をLogする関数を作成しました。

処理が重そうな関数を作成する度に処理時間を測定するコードを書いてた過去におさらばです。

関数の実行はコールバック関数(callback)を用いています。

コード

function funcTime(func){
  var start = new Date();
  var result = func();
  var end = new Date();
  Logger.log('%s(): %ssec', func.name, (end - start)/1000);  // Logの形式はお好みで
  return result;
}

使用例

使用例
// 引数がない関数の使用例
funcTime(func1);

// 引数がある関数の使用例
funcTime(func2.bind(this, 2, 1000));

// 戻り値がある関数の使用例
var res = funcTime(func3);
Logger.log(res);  // 戻り値をLog
テスト関数
// 引数がない関数
function func1(){
  Utilities.sleep(1000);
}

// 引数がある関数
function func2(time1, time2){
  Utilities.sleep(time1 * time2);
}

// 戻り値がある関数
function func3(){
  return 'func3は戻り値あり';
}

結果

func1(): 1.001sec
(): 2.001sec
func3(): 0.0sec
func3は戻り値あり

引数がある関数を実行した際に関数名(func.name)が取得できないのが微妙ですが、とりあえず動くので良しとしました。

誰かよい方法を知っている方は教えていただけますと幸いです。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1