Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

210
Views
¿Admite Google Apps Script (GAS) las llamadas de cola adecuadas o la optimización de llamadas de cola?

Me pregunto si vale la pena invertir tiempo en la optimización de llamadas de cola para Google Apps Script.

Entonces, tengo entendido que Google Apps Script usa la versión ES2015 (ES6) de la especificación de JavaScript ( ref1 , ref2 ), ejecutándola en la implementación del tiempo de ejecución V8 .

Supuestamente, ES2015 admite la optimización de llamadas de cola (adecuada) de la especificación. Pero hay algunas indicaciones de que V8 en realidad no lo implementa:

  • ¿Qué pasó con las llamadas de cola adecuadas en JavaScript?
  • Implementación de Tail Call Optimization en motores Javascript

Además, he aprendido que hay un matiz importante aquí:

La terminología de llamadas de seguimiento adecuadas (PTC) y optimización de llamadas de seguimiento (TCO) a menudo se combina. Aquí está la diferencia entre los dos:

  • llamadas de cola adecuadas: las funciones llamadas en la posición de cola reutilizan el marco de pila actual, evitando la creación de marcos de pila adicionales que causan ineficiencia de espacio.
  • optimización de llamada de cola: reescribe una función recursiva en una iterativa, generalmente llamando a goto.

PTC solo se ocupa de la manipulación de la pila, mientras que TCO reescribe una función recursiva como una función iterativa.

Entonces, dado esto...

Google Apps Script (GAS):

  • admite llamadas de cola adecuadas? Mi suposición de lo anterior es "No", pero sería bueno tener una respuesta autorizada, en la medida de lo posible.
  • ¿Apoyar la optimización de llamadas de cola hasta el punto en que vale la pena hacerlo, para el rendimiento, de alguna manera? Mi conjetura es "Sí, puede hacerlo, pero no mejora el rendimiento". Pero sería bueno si alguien lo supiera definitivamente, o pudiera señalar una comparación de rendimiento de GAS que lo demuestre.
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

(Desarrollador V8 aquí.)

¿Admite Google Apps Script (GAS) llamadas de cola adecuadas?

No. V8 no admite PTC (ni STC); usted mismo ya se ha vinculado a la historia de fondo. Dado que GAS se basa en V8 para la ejecución de JS, tampoco puede admitirlos.

preguntándose si vale la pena invertir tiempo en hacer la optimización de llamadas de cola para un script. / ¿GAS admite la optimización de llamadas de cola hasta el punto en que vale la pena hacerlo, por rendimiento, de alguna manera?

No estoy seguro de lo que quiere decir: TCO es algo que potencialmente hace un compilador, no algo que usted hace.

Si quiere decir "mover llamadas a posiciones finales, para que el compilador pueda convertirlas en iteraciones": No, V8 no hace eso, por lo que no vale la pena. Si una llamada se produce en una posición de cola o no, no hace ninguna diferencia para el rendimiento. (Y no apostaría a que eso cambie pronto).

Si quiere decir "convertir manualmente la recursividad en iteración": puede valer la pena hacerlo para el código crítico para el rendimiento; si vale la pena hacerlo en su caso particular solo se puede responder probándolo y midiendo el efecto. (Como siempre, es muy probable que una pequeña prueba artificial, también conocida como "microbenchmark", produzca resultados engañosos que no se aplican a otras situaciones).
Esto no necesita ningún "soporte" de GAS o V8.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!