> 웹 프론트엔드 > JS 튜토리얼 > 내 Google Apps Script가 너무 느린 이유는 무엇이며 'getValues' 및 'setValues' 사용을 최적화하려면 어떻게 해야 하나요?

내 Google Apps Script가 너무 느린 이유는 무엇이며 'getValues' 및 'setValues' 사용을 최적화하려면 어떻게 해야 하나요?

DDD
풀어 주다: 2024-12-01 03:05:14
원래의
729명이 탐색했습니다.

Why is my Google Apps Script so slow, and how can I optimize `getValues` and `setValues` usage?

getValues ​​및 setValues의 과도한 사용으로 인한 긴 처리 시간

문제:

코드에 getValues ​​및 setValues ​​메소드의 과도한 사용으로 인해 문제가 발생하며 이는 심각한 영향을 미칠 수 있습니다. 특히 대규모 데이터 세트의 경우 처리 시간이 더 걸립니다.

최적화 기법:

서비스 호출 최소화:

  • 피하세요. Google Apps Script 서비스에 대한 불필요한 호출. 대신 데이터를 로컬로 캐시하고 스크립트 내에서 작업하세요.

예상 캐싱:

  • Google Apps Script는 내장된 모양을 사용합니다. - 가능성이 있는 데이터를 검색하기 위해 미리 캐싱함 필요합니다.

읽기/쓰기 작업 최소화:

  • 배열의 데이터를 검색하고 조작하여 읽기 및 쓰기 작업을 일괄 처리합니다. 이렇게 하면 서버에 대한 호출 수가 줄어듭니다.

읽기/쓰기 교대 방지:

  • 읽기 및 쓰기 명령을 교대로 사용하면 예측 캐싱이 중단됩니다. . 이러한 교대 패턴을 최소화하도록 운영을 계획하세요.

배열 사용:

  • 배열을 사용하여 데이터를 효율적으로 저장하세요. 단일 getValues ​​호출로 모든 데이터를 배열로 검색하고, 이에 대한 작업을 수행한 다음, 단일 setValues ​​호출로 다시 씁니다.

예:

다음 코드 조각을 고려하세요.

// Slow version: Alternating read and write operations
const sourceRange = SpreadsheetApp.getActiveSheet().getRange("A1:D2");
const targetRange = sourceRange.offset(2, 0);
for (let i = 0; i < sourceRange.getNumRows(); i++) {
  for (let j = 0; j < sourceRange.getNumColumns(); j++) {
    const value = sourceRange.getCell(i + 1, j + 1).getValue();
    targetRange.getCell(i + 1, j + 1).setValue(value);
  }
}

// Fast version: Batch read and write operations
const sourceValues = sourceRange.getValues();
targetRange.setValues(sourceValues);
로그인 후 복사

읽기와 쓰기를 일괄 처리하여 두 번째 코드 조각은 서비스 호출 횟수를 크게 줄이고 처리 시간을 향상시킵니다.

위 내용은 내 Google Apps Script가 너무 느린 이유는 무엇이며 'getValues' 및 'setValues' 사용을 최적화하려면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿