- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
到目前为止我发现的“隔离”的解释。
实验#1:http://izs.me/v8-docs/classv8_1_1Isolate.html
“Isolate 表示 V8 引擎的一个孤立实例。V8 分离株具有完全独立的状态。来自一个隔离区的对象不得用于其他隔离区。当 V8 被初始化时,一个默认的 isolate 被隐式地创建和输入。嵌入器可以创建额外的隔离并在多个线程中并行使用它们。在任何给定时间,最多只能有一个线程进入隔离区。 Locker/Unlocker API 可用于同步。”
实验#2:https://developers.google.com/v8/get_started
“隔离是一个具有自己堆的 VM 实例。”
好的,我明白了。 “隔离”是一个可以单独运行的隔离线程。以下是我的问题。
它看起来对我来说只是线程,只是它有自己的堆。有什么区别吗?
我认为“隔离”可以用于实现并发 GC。上面的定义说每个“Isolate”不能用于其他“Isolate”。但是并发 GC 应该检查(或标记)主(或其他)线程(或隔离)的事件对象。怎么可能?
怎么可能保护自己的对象? “隔离”是一个线程而不是一个进程。所以其他线程如果知道地址就可以访问该线程的对象。怎么保护呢?而且我无法理解自己堆的含义。因为如果其他线程知道地址,它可以被其他线程访问。普通线程可以在内存空间中拥有它们的堆。由于堆的地址空间并没有完全分开,但是如果一个线程 malloc 一 block 内存,除非其他线程知道地址,否则其他线程如何使用它?每个线程只 malloc 自己的堆空间和“隔离”有自己的堆空间有什么区别?
我的问题可以很容易地概括为“Isolate”的作用是什么,怎么可能有自己的堆空间,为什么要有自己的堆。
如果有人分享一些“Isolate”的好文档,那将非常有帮助。感谢阅读。
---- 把问题说清楚----我的问题的关键是问:是什么让谷歌在 V8 中实现隔离?isolate 有什么好处,什么是在 V8 中使用 isolate 的好例子?他们(隔离)并发执行什么?
最佳答案
- It looks like just thread for me, except that it has its own heap. is there any difference?
它们是正交的,一个线程可以同时执行多个isolate,而一个isolate一次只能被一个线程执行。当然,一个 isolate 可以在不同的时间由不同的线程执行,但这可能并不常见。一个 isolate 只是 JavaScript VM 的一个实例,它只有自己的 JavaScript 堆,正常的进程堆仍然在进程中正常共享。
- I think "Isolate" can be used for implementing concurrent GC. The definition above says that each "Isolate" cannot be used in other "Isolate". But concurrent GC should check(or mark) the main(or other) thread(or Isolate)'s live objects. How can it be possible?
Mark&Sweep GC 中的非压缩扫描操作可以从另一个线程并发执行。其他 GC 操作,如 compacting sweep、scavenge、marking 只能在 JS 不在 isolate 中执行时执行。
- How can it be possible to protect their own objects? "Isolate" is a thread not a process. So other thread can access that thread's object if it knows the address. How could protect it? And I cannot understand the meaning of own heap. Because it can be accessed by other thread if other thread knows the address. And normal thread can have their heap in memory space. Since address space of heap is not seperated exactly but if one thread malloc a memory, how could other thread use it unless others know the address? What's the difference each thread just malloc their own heap space and "Isolate" have its own heap space?
好吧,你不知道地址,也不可能让它坚持使用 V8 API。即使您可以获得地址,使用该地址也不安全,因为 V8 不断地在其堆中移动内容。 malloc 不会返回指向某个 isolate 的 js 堆的地址,因为显然该内存已被 isolate 分配。
关于javascript - "Isolate"在V8中的作用是什么?怎么可能单独制作 "Isolate"呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29299397/
我想在一个页面上做一个按钮,可以在同一页面调用一个JS函数。该函数将需要创建(打开)新窗口,其 HTML 代码由 JS 函数本身提供。我该怎么做? 这样做的目的是从特定页面生成一个打印友好的页面。 请
我一直在用 php 开发这个项目。该项目的一半是使用 mysql_query 完成的,最新的模块是使用 mysqli 制作的。有很多模块,我不想更改代码。如果是这样的话会不会产生问题。或者我应该将其全
我安装了好几次 qt creator,但它从来没有像我现在的 PC 那样花钱;首先,我使用我的 Pendrive(Qt 5.8 的)上一直有的安装程序,告诉我我无法下载一些存储库,我下载了相同安装程序
我安装了 Qt Creator 5.10.1,当我构建项目时出现错误:“无法确定要运行哪个”make“命令。检查构建配置中的”make“步骤。”。 我已经在另一台 PC 上安装了 Qt,我看到了这个问
看看这个 makefile,它有某种原始的进度指示(可能是一个进度条)。 请给我建议/意见! # BUILD 最初是未定义的 ifndef 构建 # max 等于 256 个 x 十六:= x x x
这个问题会有点长,对此我很抱歉:) 我花了几天时间寻找最好的解决方案,以在 asp mvc 和 JQuery 中制作图像库。 主要问题是当用户点击拇指时显示图像。 我想让整个浏览器 View 变成黑色
我是Python方面的 super 高手。我一直在努力寻找适当的解决方案。这是列表,L = [0, 0, 0, 3, 4, 5, 6, 0, 0, 0, 0, 11, 12, 13, 14, 0, 0
让我们考虑两个简化的 CMakeLists.txt set(GTEST "/usr/local/lib/libgtest.a") set(GMOCK "/usr/local/lib/libgmock.
我如何制作 Makefile,因为这是按源代码分发程序的最佳方式。请记住,这是针对 C++ 程序的,而我是从 C 开发领域开始的。但是可以为我的 Python 程序制作 Makefile 吗? 最佳答
由于 Ord 是 Eq 的子类,我发现很难理解创建该类的新类型实例的样子。 我已经设法做到了: newtype NT1 = NT1 Integer instance Eq NT1 wh
在 PowerShell 中,我想编写一个函数,它接受不同的选项作为参数。没关系,如果它接收多个参数,但它必须接收至少一个参数。我想通过参数定义而不是之后的代码来强制执行它。我可以使用以下代码让它工作
我正在通过构建包使用 enable-ssl 在 heroku (ubuntu) 上安装 ffmpeg。我能够一直构建到这些错误: install: cannot create regular file
我是 FFmpeg 的新手,但作为一个学习一些 mysql 数据库的项目,我正在尝试创建一个视频上传网站。 当我尝试使用此代码制作缩略图时: shell_exec("/usr/local/bin/ff
我想要一个绘制可绘制对象的 Actor ,但将其剪辑为 Actor 的大小。我从 Widget 派生这个类,并使用一些硬编码的值作为一个简单的测试: public class MyWidget ext
我一直在查看 Faxien+Sinan 和 Rebar,Erlang OTP 的基本理念似乎是,在单个 Erlang 镜像实例上安装应用程序和版本。保持发布自包含的最佳实践是什么?有没有办法打包发布,
我正在尝试克隆存储库,但它应该是彼此独立的副本。这背后有什么魔法吗,或者只是使用 svn 客户端并克隆它? 谢谢 最佳答案 试试 svnadmin hotcopy .您可以在 repo mainten
我想做一个这样的菜单: Item 1 Item 2 Item 3 Subitem 1 Subitem 2 但我得到了这个:
为 Yii 创建扩展的最佳方式是什么? 这是我到目前为止所做的 我希望它可以通过 composer 安装,所以我为它创建了一个 github repo。 我在文件夹 vendor/githubname
我尝试制作一个ActionListener,但它给了我一个错误。我导入了事件,但它仍然不起作用。这是我的代码: send.addActionListener(new jj); private clas
我需要能够将 div 内的 HTML 代码恢复为页面就绪状态。我需要这个,因为我想在页面准备好后对 HTML 代码进行一些更改,然后在需要时将其恢复到页面准备好时的状态.. 我想使用克隆,但是如何只复
我是一名优秀的程序员,十分优秀!