разделение памяти в v8 для разных контекстов - PullRequest
0 голосов
/ 16 мая 2018

Я новичок в изучении хрома и v8. Я знаю, что основной поток в процессе рендеринга связан с изолятом в v8, и изолят может иметь несколько контекстов. Но меня смущает расположение памяти в Isolate с несколькими контекстами.

v8 сказал, что контекст используется для обеспечения изолированной среды выполнения для JS-скриптов в другом фрейме или мире. Так какова граница памяти между этими контекстами? У каждого контекста есть отдельный стек и куча? И если существует несколько стеков или куч, как v8 поддерживает и переключает их?

Любые идеи приветствуются. Спасибо.

1 Ответ

0 голосов
/ 16 мая 2018

Изоляты обеспечивают изолированные среды выполнения. Между различными контекстами возможно некоторое ограниченное взаимодействие.

Каждый изолят имеет одну кучу (и стек). Когда в изоляте есть несколько контекстов, все они совместно используют одну и ту же кучу.

«Граница памяти» между контекстами состоит из проверок доступа, которые V8 выполняет в определенных местах.

...