我是学习铬和v8的新生。我知道渲染器进程中的主线程绑定到v8中的Isolate,而Isolate可以拥有多个上下文。但我对具有多个上下文的Isolate中的内存布局感到困惑。
v8表示上下文用于为不同框架或世界中的JS脚本提供隔离的执行环境。那么这些背景中的内存边界是什么?每个上下文是否都有一个独立的堆栈和堆?如果存在多个堆栈或堆,v8如何维护和切换它们?
任何想法都表示赞赏。谢谢。
答案 0 :(得分:0)
Isolates 提供隔离的执行环境。在不同的上下文之间,可能会进行一些有限的交互。
每个隔离区都有一个堆(和堆栈)。当隔离区中有多个上下文时,它们都共享相同的堆。
"内存边界"上下文之间包括V8在某些地方执行的访问检查。