2016-12-06 16 views
1

Google Appsスクリプトでスプレッドシートを取得し、行ごとにループし、列ごとに値の列を取得し、RSSフィードを生成します。forループのためにGoogle Appsスクリプトの実行が遅い

私はいくつかのパフォーマンス上の問題を抱えています。これは、私が思うには不十分なループのためであり、その多くの値を照会しています。

これを最適化する方法についての洞察はありますか?ありがとう!何度も何度もgetCellsetValueを呼び出す

http://pastebin.com/EPN5EPAx

+0

リンクされたページが削除されました –

答えて

1

は、おそらくそんなにそれを減速されたものです。 setValue()に電話をかけるたびに、新しいIOコールが遅くなります。データを一度に読み込んで保存するのが最善です。例えば

と開始時の範囲のすべての値をロードする:彼は(代わりgetCell(i, 2)使用values[i - 1][1]の)二次元アレイを得繰り返し処理次に

var values = range.getValues(); 

あなたは価値の使用を変更する必要があります:あなたが終了したら

values[i][j] = newValue; 

は、次に呼び出し:でロードするために1:

range.setValues(values); 

あなたがIOを最小化するこの方法は2つに呼び出し、最後に1つのセーブが変更されます。

関連する問題