En İyi Uygulamalar

Bu dokümanda, performansınızı artırmanıza yardımcı olacak en iyi uygulamalar listelenmektedir sağlayabilir.

Diğer hizmetlere yapılan çağrıları en aza indirin

Komut dosyanızdaki JavaScript işlemlerini kullanmak, diğer hizmetleri aramak. Google Apps Komut Dosyası'nda gerçekleştirebileceğiniz her şey gereken çağrılar yapmaktan çok daha hızlı olacaktır. E-Tablolar, Dokümanlar veya E-Tablolar'a yapılan istekler gibi harici bir sunucuya Google Sites, Çeviri, UrlFetch vb. Mümkünse komut dosyalarınız daha hızlı çalışır komut dosyalarının bu hizmetlere yaptığı çağrıları en aza indirmenin yollarını bulmak.

Ortak Drive'larla ortak çalışma yapmayı düşünebilirsiniz.

Başka geliştiricilerle birlikte bir komut dosyası projesi üzerinde çalışıyorsanız ortak Drive'lar ile Apps Komut Dosyası projelerinde ortak çalışma yapabilirsiniz. Ortak drive'daki dosyaların sahibi kişilere değil, gruba aittir. Bu ve bakımını kolaylaştırır.

Toplu işlemleri kullanma

Komut dosyaları genellikle bir elektronik tablodaki verileri okumalı, hesaplamalar yapmalı, ve sonra verilerin sonuçlarını bir elektronik tabloya yazacağım. Google Uygulamaları Komut dosyasında zaten yerleşik optimizasyon (ör. önceden bakmayı) kullanma alma olasılığı yüksek olan verileri almak ve ayarlanır.

Yerleşik önbelleğe alma özelliğinden en iyi şekilde yararlanmak için komut dosyaları yazabilirsiniz. Böylece okuma ve yazma sayısını en aza indirir. Alternatif okuma ve yazma komutları yavaştır. Bir komut dosyasını hızlandırmak için tüm verileri tek bir komutla bir dizide okuyup dizideki veriler üzerinde tüm işlemleri gerçekleştirebilir ve verileri bir komut kullanabilirsiniz.

İşte size bir örnek: İzlememeniz veya kullanmamanız gereken bir örnek. Senaryo aşağıdaki kodu kullanarak bir hücredeki her hücrenin arka plan renklerini 100 x 100 e-tablo ızgarası. Şu ada sahip bir işlev olarak kullanır: Hangi rengin kullanılacağını belirlemek için getColorFromCoordinates() (burada gösterilmez) (her hücre için):

  // DO NOT USE THIS CODE. It is an example of SLOW, INEFFICIENT code.
  // FOR DEMONSTRATION ONLY
  var cell = sheet.getRange('a1');
  for (var y = 0; y < 100; y++) {
    xcoord = xmin;
    for (var x = 0; x < 100; x++) {
      var c = getColorFromCoordinates(xcoord, ycoord);
      cell.offset(y, x).setBackgroundColor(c);
      xcoord += xincrement;
    }
    ycoord -= yincrement;
    SpreadsheetApp.flush();
  }

Komut dosyası verimsizdir: 100 satır ve 100 sütunda döngü yapar ve art arda 10.000 hücreye oluşturulacaktır. Google Apps Komut Dosyası yazma geri önbelleği, çünkü her satırın sonunda boşaltma kullanarak bir geri yazma işlemi uygular. Çünkü dahil olduğundan, e-tabloda yalnızca 100 çağrı bulunur.

Ancak çağrıları toplu hale getirerek kodu çok daha verimli hale getirebilirsiniz. Buradan hücre aralığının, renkler ve renk adı verilen bir diziye okunduğu yeniden yazma atama işlemi, dizideki veriler ve dizi e-tabloya yazılır:

  // OKAY TO USE THIS EXAMPLE or code based on it.
  var cell = sheet.getRange('a1');
  var colors = new Array(100);
  for (var y = 0; y < 100; y++) {
    xcoord = xmin;
    colors[y] = new Array(100);
    for (var x = 0; x < 100; x++) {
      colors[y][x] = getColorFromCoordinates(xcoord, ycoord);
      xcoord += xincrement;
    }
    ycoord -= yincrement;
  }
  sheet.getRange(1, 1, 100, 100).setBackgroundColors(colors);

Verimsiz kodun çalışması yaklaşık 70 saniye sürer. Verimli kod, yalnızca 1 saniye!

Kullanıcı arayüzü ağırlıklı komut dosyalarında kitaplıklardan kaçının

Kitaplıklar, kodları yeniden kullanmanın kolay bir yoludur. ancak senaryoyu başlatma süresi biraz artırılır. Bu gecikme nispeten uzun süren komut dosyaları (örneğin, bir komut dosyası gibi) temizlemeniz gerekmez), ancak istemci tarafında HTML Hizmeti kullanıcı arayüzleri şunlardır: kısa süreli google.script.run bu gecikme her aramayı etkiler. Bu sorun nedeniyle kitaplıklar eklentilerde ölçülü bir şekilde kullanılmaması gerektiğini, çok sayıda google.script.run çağrısı yapan eklenti olmayan komut dosyalarında bunlardan kaçının.

Önbellek hizmetini kullanma

Önbellek Hizmeti'ni kullanabilirsiniz komut dosyası yürütme işlemleri arasında kaynakları önbelleğe almak için kullanılır. Verileri önbelleğe alarak kaç kez veya ne sıklıkla veri getirmeniz gerektiğini gösterir. example.com'da 20 saniye süren bir RSS özet akışınızın olduğu senaryoyu düşünün. ve ortalama isteğe erişimi hızlandırmak istiyorsunuz. İlgili içeriği oluşturmak için kullanılan aşağıdaki örnekte, bu dosyaya erişimi hızlandırmak için Önbellek Hizmeti'nin nasıl kullanılacağı gösterilmektedir dışı verilerdir.

  function getRssFeed() {
    var cache = CacheService.getScriptCache();
    var cached = cache.get("rss-feed-contents");
    if (cached != null) {
      return cached;
    }
    // This fetch takes 20 seconds:
    var result = UrlFetchApp.fetch("http://example.com/my-slow-rss-feed.xml");
    var contents = result.getContentText();
    cache.put("rss-feed-contents", contents, 1500); // cache for 25 minutes
    return contents;
  }

Şimdi, öğe önbellekte değilse 20 saniye beklemeniz gerekse de sonraki erişimler, öğenin süresi önbellekten çıkana kadar çok hızlı olur 25 dakika sürecek.