0

私はGoogleスクリプトが初めてです。

コーディングのパフォーマンスを向上させる方法についてアドバイスをいただけますか? numOfEmail 変数が非常に大きい場合、パフォーマンスが低下します。

for (var i = 0; i < numOfEmail; i++)
  {
  var messages=threads[i].getMessages();  
  for (var j = 0; j < messages.length; j++) 
    {                   
    sheet.getRange("A"+(lastEntry+i)).setValue(messages[j].getId());
    sheet.getRange("B"+(lastEntry+i)).setValue(messages[j].getDate());
    sheet.getRange("C"+(lastEntry+i)).setValue(messages[j].getFrom());
    sheet.getRange("D"+(lastEntry+i)).setValue(messages[j].getSubject());
    sheet.getRange("E"+(lastEntry+i)).setValue(messages[j].getTo());
    sheet.getRange("F"+(lastEntry+i)).setValue(messages[j].getCc());
    sheet.getRange("G"+(lastEntry+i)).setValue(messages[j].getBcc());                  

    if(i/numOfEmail*100-oldPercentage>4)
      {
      oldPercentage=i/numOfEmail*100;
      sheet.toast(i/numOfEmail*100+"% completed", "In Progress", 3);
      }
    } 
  }

私はグーグルに尋ねましたが、スクリプトを高速化する方法を見つけましたが、コードを変更する方法がわかりません。アドバイスよろしくお願いします。

実際、Gmail をスプレッドシートにエクスポートしてみたいと思います。私が使用しているサンプルコードは、このリンクからのものです。現在のサンプル コードでは 200 件のメールをエクスポートできますが、Gmail アカウントに約 500 件以上のメールがあるため、1000 件に変更します。コードを実行しようとすると、スクリプトの実行にかなり時間がかかり、実行が終了することはありません..プログラムがコードのどこかでハングしているようです。なぜだろう。また、スクリプトが 5 ~ 10 行のデータを更新するたびに、少なくとも 20 ~ 30 秒かかります。

4

1 に答える 1