v8中针对不同上下文的内存分离

时间:2018-05-16 12:49:42

标签: chromium v8

我是学习铬和v8的新生。我知道渲染器进程中的主线程绑定到v8中的Isolate,而Isolate可以拥有多个上下文。但我对具有多个上下文的Isolate中的内存布局感到困惑。

v8表示上下文用于为不同框架或世界中的JS脚本提供隔离的执行环境。那么这些背景中的内存边界是什么?每个上下文是否都有一个独立的堆栈和堆?如果存在多个堆栈或堆,v8如何维护和切换它们?

任何想法都表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

Isolates 提供隔离的执行环境。在不同的上下文之间,可能会进行一些有限的交互。

每个隔离区都有一个堆(和堆栈)。当隔离区中有多个上下文时,它们都共享相同的堆。

"内存边界"上下文之间包括V8在某些地方执行的访问检查。