前提・実現したいこと
GASを使用し、スクリプトを連続実行して時間計測を行うスクリプトを作成しました。
これは単純に、作成したコードの時間を計測するためだけのスクリプトなのですが、
汎用性あるのでライブラリ化しているプロジェクトに入れました。
そしてスプレッドシート側で実行コードを作成して、スクリプトを実行したのですが、
そもそも、ライブラリ側からは共有もされていないスクリプトを動かそうとするため、
エラーとなります。
発生している問題・エラーメッセージ
ReferenceError: testTime is not defined
該当のソースコード
GAS
1 2//スプレッドシート側 3function testTime(){ 4myLibrary.testerFuncTime("testCode()",10) 5} 6function testCode(){ 7Utilities.sleep(500); 8} 9 10 11 12//ライブラリ側 13function testerFuncTime(functionName,n){ 14const start = getTime(); 15 if(typeof n != 'number'){n = 3} 16 var result = []; 17 18 for(var i = 1; i <= n; i++){ 19 var start2 = getTime(); 20 eval(functionName); 21 var span = getSpan(start); 22 var span2 = getSpan(start2); 23 result.push(span2) 24 Logger.log(i+"回目:"+span2,"累積:"+span) 25 if(i == 20){break;} 26 } 27 var max = Math.max.apply(null, result) 28 var min = Math.min.apply(null, result) 29 var ave = (span / i).toFixed(1) 30 Logger.log("最大:"+max+",最小:"+min+",平均:"+ave) 31} 32
試したこと
当然ながらライブラリ側のコードを、実行側のプロジェクト内にコピーすれば問題なく動きますが、
出来れば一発で行けないかなと試行錯誤中です。
ですが現状の結論は、ライブラリー側が実行側のプロジェクトをライブラリー登録していないため、
実行側のスクリプトを実行することは不可と思っております。
それが正しいのであればこの方法はあきらめて実行時コピーで対応する方向でかんがえますが、
何かしら他のアイディアや情報がある場合は教えていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/16 04:28
2020/06/16 07:05
2020/06/17 01:20