javascript google-apps-script google-sheets

javascript - ¿Por qué usamos SpreadsheetApp.flush();?



google-apps-script google-sheets (1)

Un programador usará flush() cuando quiera asegurarse de que la salida y / o los efectos del código anterior se escriban en la hoja de cálculo antes de continuar. Si no flush() , entonces el código puede ser "optimizado" automáticamente mediante el almacenamiento en caché integrado y la agrupación de operaciones. En general, no necesita usar flush() hasta que específicamente lo necesite ... si eso tiene sentido.

Primero, os olde documentación oficial:

rubor()

Aplica todos los cambios pendientes de la hoja de cálculo. Las operaciones de hoja de cálculo a veces se agrupan para mejorar el rendimiento, como cuando se realizan varias llamadas a Range.getValue (). Sin embargo, a veces es posible que desee asegurarse de que todos los cambios pendientes se realicen de inmediato, por ejemplo, para mostrar los datos de los usuarios mientras se ejecuta un script.

¿Qué tal una analogía explainlikeimfive ¿Cómo decir que estás contando manzanas en un árbol con 100 manzanas?

Podrías contar y registrar cada manzana individualmente, así:

1 , 2 , 3 , 4 , 5 , 6 ... etc.

Esto es como hacer un flush() dentro de un ciclo, ya que literalmente está escribiendo después de cada operación de count . Terminará escribiendo en su papel 100 veces , y supongamos que lleva más tiempo escribir con la mano que contar con los ojos.

Un proceso "optimizado" (en este caso) sería usar su memoria / caché y contar 5 manzanas antes de escribir un número, por lo que escribiría

5 , 10 , 15 , 20 ... etc.

Ahora terminará escribiendo en su papel 20 veces (una reducción del 80%), y a pesar de tener que contar la misma cantidad de manzanas, ha reducido la cantidad de escrituras que tiene que hacer, por lo que verá un rendimiento drástico beneficio por tiempo de ejecución reducido.

Esto se traduce aproximadamente a cómo funcionan las operaciones de Apps Script. Como en toda la informática, las operaciones en memoria son las más rápidas de ejecutar, y las operaciones de lectura / escritura (también conocidas como entrada / salida o E / S) son las más lentas (verifique su Transcripción de ejecución para obtener más pruebas). Es por eso que solo debe usar flush() cuando específicamente necesita escribir sus datos en la hoja de cálculo en un punto particular en la ejecución de su código.

Espero que esto ayude.

Soy un completo principiante.

Leí el documento de Google para la solución. Busqué en internet lo mismo. También busqué StackOverflow para el mismo.

Pero. Todo parece técnico.

Lo que entiendo es que .Flush ayuda a ejecutar las funciones a medida que ocurren sin agruparlas en una.

Estoy en lo cierto? Si no, ¿cuál es el significado en términos simples? Y por favor, con un simple ejemplo. Gracias.