【发布时间】:2019-09-08 00:00:36
【问题描述】:
在这篇文章中: https://wingolog.org/archives/2013/06/11/ecmascript-generators-from-a-performance-perspective,它提到:
在生成器函数中,V8 将局部变量存储在堆上 而不是在堆栈上。
但它也与下一段自相矛盾:
这种情况的例外是当你让道并且有 堆栈上的临时对象。回想一下我关于 V8 基线的文章 编译器认为完整的代码生成是一个堆栈机器。它分配插槽 到命名的本地,但临时值在运行时进入堆栈,
我不明白的部分是生成器函数总是使用yield,我认为文章中提到的suspension是指yield语句。
【问题讨论】:
-
什么文章?你没有链接到它。
-
另外,在一个案例中提及例外又是如何矛盾的?
-
@ScottMarcus 谢谢!
-
您引用的第二段不是在谈论生成器,而是在描述 V8 基线编译器的一般工作方式。
-
它描述了两个引号之间的两段中描述的内容的异常。
标签: javascript optimization heap-memory generator v8